关于扩展方法的一些理解

伊玛德

我只是收集了一些有关的知识,似乎很难理解以下情况。

我有2节课。一种具有Main方法,另一种具有以下两种Extension Methods

主班

class Program
    {
        static void Main(string[] args)
        {
            string uuu = "214";
            Console.WriteLine(uuu.SplitMe().AddMe());
            Console.ReadKey();
        }
    }

扩展类

static class ExtensionClass
    {
        public static char[] SplitMe(this string value)
        {
            return value.ToCharArray();
        }

        public static long AddMe(this char[] value)
        {
            int sum = 0;
            for (int i = 0; i<value.Length ; i++)
            {
                sum += Convert.ToInt32(value[i]);
            }
            return sum;
        }
    }

我期待在下一行

Console.WriteLine(uuu.SplitMe().AddMe());

的输出uuu.SplitMe()char[]的{“2”,“1”,“4”},并要打印的完整线的结果作为图7(2 + 1 + 4),但它是151我的控制台上。您能详细说明一下它的计算方式吗?

谢谢。

里德·科普西

问题在于,的System.Char'2'具有50而不是2的整数。因此,您正在求和{'2','1','4'},具有的值{50, 49, 52},而该值又变为151。

您可以通过以下方式将字符转换为与其值匹配的数字:

sum += int.Parse(value[i].ToString());

但是,如果传递包含非数字字符的字符串,这将引发异常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于引发异常的一些困惑

来自分类Dev

关于setMnemonic的一些问题

来自分类Dev

关于NP的一些推论

来自分类Dev

关于CSS溢出的一些困惑

来自分类Dev

关于优化器的一些知识

来自分类Dev

关于FASM的一些问题

来自分类Dev

关于sipp的一些问题

来自分类Dev

关于泛型的一些困惑

来自分类Dev

关于NP的一些推论

来自分类Dev

关于nohup的一些困惑

来自分类Dev

关于“一对多”关系的一些困惑

来自分类Dev

关于“一对多”关系的一些困惑

来自分类Dev

关于Redigo和并发的一些问题

来自分类Dev

关于余弦相似度的一些问题

来自分类Dev

关于数据包的一些困惑

来自分类Dev

关于PHPExcel图表的一些问题

来自分类Dev

需要一些关于日期和文化的建议

来自分类Dev

关于C ++中的数组的一些问题

来自分类Dev

关于指针作为数组有一些疑问吗?

来自分类Dev

木筏:关于只读查询的一些问题

来自分类Dev

java关于一些使用问题?“超级水果”

来自分类Dev

一些关于Rust内存顺序的困惑

来自分类Dev

关于体积渲染的一些新手问题

来自分类Dev

关于“ su-”和“ su”的一些困惑

来自分类Dev

关于/ dev / fd / 3的一些特别之处

来自分类Dev

关于剑道网格数据绑定的一些困惑

来自分类Dev

关于指针作为数组有一些疑问吗?

来自分类Dev

关于C语言中的“ goto”的一些问题

来自分类Dev

关于volatile关键字的一些澄清