У меня есть класс, в котором я использую такое свойство, как 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
Указание ReSharper о том, что поле не равно нулю, когда другое свойство имеет значение «истина». ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Подтверждение: Значение, установленное на мое свойство, действительно равно нулю?
Anonymous » » в форуме C# - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Подтверждение: Значение, установленное на мое свойство, действительно равно нулю?
Anonymous » » в форуме C# - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Назначьте значение элемента массива по умолчанию, если значение приблизительно равно нулю.
Anonymous » » в форуме Php - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-