Неожиданный нулевой метод неявного оператораC#

Место общения программистов C#
Ответить
Anonymous
 Неожиданный нулевой метод неявного оператора

Сообщение Anonymous »

Рассмотрим этот неявный оператор: < /p>

Код: Выделить всё

public class Person
{
public Person(string name) => Name = name;
public string Name { get; }
public static implicit operator string(Person person) => person.Name;
}
< /code>
и этот тестовый пример: < /p>
public class Program
{
public static void Main()
{
var person = new Person("John");

// works
string? name1 = true  ? person : null;

// CS8604 Possible null reference argument for parameter 'name' in 'Person.implicit operator string(Person name)'.
// also NullReferenceException
string? name2 = false ? person : null;
}
}
< /code>
Это можно увидеть в этом запущенном резо. Переменная человек 
не является нулевой, так почему в методе неявного оператора нулевой>

Подробнее здесь: https://stackoverflow.com/questions/796 ... tor-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»