C# 没有大写形式时的Char.ToUpper
编写转换成camelCase或从camelCase转换成camelCase的方法,我有一个想法——如果有人使用没有大写形式的Unicode字符,并通过我的函数运行它,会怎么样?如果有人将一个已经大写的“A”传递到Char.ToUpper,会怎么样?我检查了参考源,它只是引入了一个DllImport-我知道核心CLR源是可用的,但我不太擅长导航它在我看来它组织得很差,但可能我只是不理解逻辑 当你把这些东西传递给那个函数时会发生什么?我知道我可以测试,但有没有像这样的情况会破坏?任何引发异常或导致任何类型的失败或意外行为的事件?我希望该函数在任何情况下都会返回原始字符,如果将其转换为大写字符是无效的,但情况确实如此吗?这在方法的返回值下记录: c的大写等价物,或者如果c已经是大写的,则c的不变值没有大写等价物,或者不是字母 因此它不会中断,它只会返回调用该方法的字符,保持不变。根据它返回: c的大写等价物,如果c为 已经是大写,没有大写等价物,或者不是字母 例如,在6上调用ToUpper将返回6,因为数字没有大写字母 MSDN示例显示了几个不同转换的结果:C# 没有大写形式时的Char.ToUpper,c#,.net,unicode,char,uppercase,C#,.net,Unicode,Char,Uppercase,编写转换成camelCase或从camelCase转换成camelCase的方法,我有一个想法——如果有人使用没有大写形式的Unicode字符,并通过我的函数运行它,会怎么样?如果有人将一个已经大写的“A”传递到Char.ToUpper,会怎么样?我检查了参考源,它只是引入了一个DllImport-我知道核心CLR源是可用的,但我不太擅长导航它在我看来它组织得很差,但可能我只是不理解逻辑 当你把这些东西传递给那个函数时会发生什么?我知道我可以测试,但有没有像这样的情况会破坏?任何引发异常或导致任
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)
// ? --> ?
// ä --> Ä
各国的文件:
返回值
类型:System.Char
c的大写等价物,或者如果c已经是大写的,则c的不变值没有大写等价物,或者不是字母
我不确定一切,但我遇到了一个案件,我有一个字符没有上限,它只是返回它不变-没有错误。我在VS上的功能,并期待它告诉我,由于某种原因,完全没有考虑看MSDN文件-今天累了,但显然比我想象的更坏!谢谢-我将把这个问题留待讨论,因为这里没有类似的内容,它可以帮助其他人,尽管这有点愚蠢。奇怪的是,根据该代码,“ж”不能显示在注释中,即使它可以显示在上面的文本中。也许他们是在一个特定的代码页中进行编辑,并且在更改时从未更新过注释。