.NET 中定义的 char struct -?- 运算符在哪里?

Fra*_*nno 6 .net c#

当我查看 .NET Char Struct 的文档时(这里:https : //docs.microsoft.com/en-us/dotnet/api/system.char),我可以看到常用的属性、方法等,对于 .NET Framework 中定义的任何其他类型。

我知道 char 结构有一个--为其定义的运算符,因为我可以执行以下操作:

char current = 'b';
current--;   // current now holds the value a.
Run Code Online (Sandbox Code Playgroud)

在查看 Microsoft 文档时,我希望看到一个运算符重载定义,它看起来像:

public static Char operator --(char character)
{
}
Run Code Online (Sandbox Code Playgroud)

问题是我没有看到类似的东西,也没有说哪个运算符为该类型重载。对于 char Type 示例,char 有一个运算符重载 for -- 但不是 for -,我认为最好知道所有重载运算符的记录位置,而不是进行试验和错误。

所以我的问题是:如何知道为哪种类型定义了哪个运算符?我错过了 .NET API 文档中的其他地方吗?

Ale*_*esD 3

C# 语言规范中描述了您要查找的内容。整数类型主题将 char 类型列为整数类型之一。

char 类型表示值在 0 到 65535 之间的无符号 16 位整数。char 类型的可能值集对应于 Unicode 字符集。尽管 char 与 ushort 具有相同的表示形式,但并非一种类型允许的所有操作都允许在另一种类型上进行。

关于运算符,您需要查看C# 语言规范中的前缀递增和递减运算符主题。

以下类型存在预定义的 ++ 和 -- 运算符:sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal 和任何枚举类型。

  • 问题出在当前 .NET 在线文档中的[此处](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/integral-numeric-types#feedback) - char 类型被遗漏了,显然是无意的。我已提出问题。 (3认同)