4

我想创建自己的方法.ToString(),就像我想在自己的项目中使用一样。

例如ToDecimalOrZero(),我想将数据转换为十进制,或者如果数据为空,则将其转换为零。

我知道我不应该在这里索要代码,但我一点也不知道该怎么做。

谁能帮我吗?或者至少把我介绍给某个地方……我有点迷路了。谢谢 :)

4

2 回答 2

11

使用扩展方法:

namespace ExtensionMethods
{
    public static class StringExtensions
    {
        public static decimal ToDecimalOrZero(this String str)
        {
            decimal dec = 0;
            Decimal.TryParse(str, out dec);
            return dec;
        }
    }   
}

using ExtensionMethods;
//...
decimal dec = "154".ToDecimalOrZero(); //dec == 154
decimal dec = "foobar".ToDecimalOrZero(); //dec == 0
于 2013-06-04T09:17:40.287 回答
10

这是一个如何编写自己的扩展方法的示例

namespace ExtensionMethods
{
    public static class MyExtensions
    {
        public static int WordCount(this String str)
        {
            return str.Split(new char[] { ' ', '.', '?' }, 
                             StringSplitOptions.RemoveEmptyEntries).Length;
        }
    }   
}

来自MSDN

请注意,扩展方法必须是静态的,以及包含扩展方法的类

于 2013-06-04T09:12:41.070 回答