我只是收集了一些有关的知识,似乎很难理解以下情况。
我有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] 删除。
我来说两句