设计原因使ToUpper成为Char的静态方法

Fra*_*ier 18 c#

在C#中,我们在类型字符串上有这个非静态方法:

"abc".ToUpper()
Run Code Online (Sandbox Code Playgroud)

但对于char,我们需要使用静态方法:

char.ToUpper('a')
Run Code Online (Sandbox Code Playgroud)

在向初学者介绍c#时,他们总是希望能够编写以下内容:

'a'.ToUpper()
Run Code Online (Sandbox Code Playgroud)

有没有人有这样设计的见解?

我唯一能想到的就是性能,但我也希望类型字符串的静态ToUpper()也是如此.

Wyc*_*yck 1

Hans Passant 提到可以通过扩展方法轻松实现此语法。我将在此处提供代码,以防有人深深迷恋使用该语法。

public static class MyExtensionMethods
{
    public static char ToUpper( this char c )
    {
        return char.ToUpper( c );
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

'a'.ToUpper()
Run Code Online (Sandbox Code Playgroud)

  • 这并没有回答所提出的问题。这个问题想知道*为什么*不*这是你如何做到的* (2认同)