Где находится оператор char struct - -, определенный в. NET? - PullRequest
6 голосов
/ 08 мая 2020

Когда я смотрю документацию для. NET Char Struct (здесь: https://docs.microsoft.com/en-us/dotnet/api/system.char), я вижу обычные свойства, методы и т. Д. c., Как и для любых других Тип, определенный в. NET Framework.

Я знаю, что для структуры char определен оператор --, так как я могу сделать следующее:

char current = 'b';
current--;   // current now holds the value a.

При просмотре в документации Microsoft я ожидал увидеть определение перегрузки оператора, которое будет выглядеть примерно так:

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

Проблема в том, что я не вижу ничего подобного, и не сказано, какой оператор перегружен для данного типа. В примере типа char у char есть перегрузка оператора для - но не для - и я думаю, было бы неплохо знать, где документированы все перегруженные операторы, а не делать проб и ошибок.

Итак, мои вопросы are: Как можно узнать, какой оператор определен для какого типа? Это где-то еще в документации по API. NET, которую я пропустил?

1 Ответ

3 голосов
/ 08 мая 2020

То, что вы ищете, описано в C# Спецификации языка . Integral Types topi c перечисляет тип char как один из целочисленных типов.

Тип char представляет 16-битные целые числа без знака со значениями от 0 до 65535. Набор возможных значений для типа char соответствует набору символов Unicode. Хотя char имеет то же представление, что и ushort, не все операции, разрешенные для одного типа, разрешены для другого.

Что касается операторов, вам необходимо обратить внимание на операторы увеличения и уменьшения префикса topi c в спецификации языка C#.

Предопределенные операторы ++ и - существуют для следующих типов: sbyte, byte, short, ushort, int, uint, long, ulong , char, float, double, decimal и любой тип перечисления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...