首页 > 解决方案 > .NET 中定义的 char struct -- 运算符在哪里?

问题描述

当我查看 .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.

在查看 Microsoft 文档时,我希望看到一个运算符重载定义,如下所示:

public static Char operator --(char character)
{
}

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

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

标签: c#.net

解决方案


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

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

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

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


推荐阅读