编写转换为/来自camelCase的方法,我有一个想法 - 当使用没有大写形式的Unicode字符的人出现并通过我的函数运行时怎么办?如果有人将已经大写的'A'
传递到Char.ToUpper
怎么办?我检查了参考源,它只是进入了一个DllImport - 我知道核心的CLR源是可用的,但我并不是非常擅长导航它(在我看来它的组织很差,但也许我只是不理解逻辑)。
将这些内容传递给该函数会发生什么?我知道我可以测试一下,但有没有这样的情况会破坏?是什么抛出异常或导致任何类型的失败或意外行为?我希望函数在任何情况下都能返回原始字符,将它转换为高位无效,但情况如何?
答案 0 :(得分:4)
这在Char.ToUpper method documentation on MSDN中记录在方法的返回值下:
c的大写等价物,或c的未改变的值,如果c已经是大写的,没有大写的等价物,或者不是字母。
所以它不会中断,它只会返回你调用方法的字符,不变。
答案 1 :(得分:2)
根据MSDN它返回:
c的大写等价物,如果c是c的未改变的值 已经大写,没有大写等价,或者不是字母。
例如,在“6”上调用ToUpper
将返回“6”,因为数字没有大写。
MSDN示例显示了几种不同转换的结果:
using System;
public class Example
{
public static void Main()
{
char[] chars = { 'e', 'E', '6', ',', 'ж', 'ä' };
foreach (var ch in chars)
Console.WriteLine("{0} --> {1} {2}", ch, Char.ToUpper(ch),
ch == Char.ToUpper(ch) ? "(Same Character)" : "" );
}
}
// The example displays the following output:
// e --> E
// E --> E (Same Character)
// 6 --> 6 (Same Character)
// , --> , (Same Character)
// ? --> ?
// ä --> Ä
答案 2 :(得分:1)
char.ToUpper
州的文档:
返回值
输入:System.Char
c的大写等价物,或c的未改变的值,如果c已经是大写的,没有大写的等价物,或者不是字母。