c # правдивые и ложные значения

По умолчанию C# предоставляет visual-c# только true и false.

Однако вы можете c#-language иметь собственные настраиваемые c#.net типы, становящиеся «правдивыми» и c#.net «ложными», путем реализации dotnet оператора true. Когда тип реализует dot-net оператор true, экземпляры этого dotnet типа могут использоваться .net-framework как логическое выражение. Из c#.net раздела 7.19 C# Language Specification:

Если логическое visual-c# выражение имеет тип, который c#-language не может быть неявно преобразован c# в bool, но реализует оператор .net true, то после вычисления .cs-file выражения вызывается реализация .net оператора true, предоставленная dotnet этим типом, для получения .cs-file значения типа bool.

Тип структуры c# DBBool в §11.4.2 предоставляет .cs-file пример типа, который реализует c#-language оператор true и оператор csharp false.

Вот фрагмент кода объявления c#.net оператора true (который, вероятно, выполнит visual-c# то, что вы хотели сделать .net в своем вопросе):

public static bool operator true(MyType myInstance)
{
    return myInstance != null;
}

Если вы dot-net реализуете оператор true, вы dotnet также должны реализовать visual-c# оператор false.

c#

.net

2022-11-19T08:23:09+00:00