Указание ReSharper о том, что поле не равно нулю, когда другое свойство имеет значение «истина».C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Указание ReSharper о том, что поле не равно нулю, когда другое свойство имеет значение «истина».

Сообщение Anonymous »

У меня есть класс, в котором я использую такое свойство, как Exists, которое возвращает true, когда поле _value не равно нулю.
Это поле позже используется для создания из него StreamReader. Когда я использую его, ReSharper предупреждает меня, что оно может быть нулевым, но поскольку я предотвратил это с помощью if(Exists) ранее, это не так.

Я отключил предупреждение об этом в комментарии, но мне было интересно, есть ли более чистый способ, какая-нибудь аннотация или другой трюк, чтобы ReSharper понял, что это безопасно использовать _value, когда Exists == true?

internal class User
{
private readonly string _value;

internal User([NotNull] string name, [CanBeNull] string value)
{
_value = value;
}

public bool Exists => !(_value is null);

public async Task CopyToAsync(Stream stream)
{
if (Exists)
{
// ReSharper disable once AssignNullToNotNullAttribute - '_value' won't be null here
using (var valueStream = _value.ToStreamReader())
{
await valueStream.BaseStream.CopyToAsync(stream);
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/537 ... ty-is-true
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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