@lucky4

Как проверять класс на null?

как обработать класс на нуллебл тайп?
public async Task<Country> GetCountry(string countryCode, CancellationToken cancellationToken)
{
    var countries = await SearchCountries("en-gb", cancellationToken);
    var country = countries.Value?.FirstOrDefault(x => string.Equals(x.Code, countryCode));

    if (country == null)
    {
        ////
        return 
    }

    return country;
}


Меняв на:
public async Task<Country> GetCountry
не получается, нужно менять дженерик функцию - от такого варианта приходится отказыватся
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
public async Task<Country?> GetCountry(string countryCode, CancellationToken cancellationToken)
{
    var countries = await SearchCountries("en-gb", cancellationToken);
    var country = countries.Value?.FirstOrDefault(x => string.Equals(x.Code, countryCode));
    return country; // всё ок - теперь типы сходятся.
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tentrun
@tentrun
Fullstack (asp.net /react, vue, angular) deletant
Nullable types в c# обозначаются знаком "? ".
Что бы указать тип nullable, насколько помню не нужно менять сигнатуру интерфейса. В твоём же случае ты ждёшь возвращения типа Country, а отдаёшь тип null
Есть два варианта -
1. return new Country() ;
2.Как и ответ выше - дополню
public async Task<Country?> GetCountry(string countryCode, CancellationToken cancellationToken)
{
    var countries = await SearchCountries("en-gb", cancellationToken);
    return countries.Value?.FirstOrDefault(x => string.Equals(x.Code, countryCode));
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы