Как определить во время выполнения, является ли общий параметр нулевым или нет? Я надеялся, что класс NullabilityInfoContext решит проблему, но это тоже не сработало.
Есть ли решение этой проблемы?
using System.Reflection;
namespace ConsoleApp;
public class Item
{
public required T Value { get; init; }
public bool IsNullable()
{
var nullabilityInfoContext = new NullabilityInfoContext();
var propertyInfo = this.GetType().GetProperty(nameof(Value));
var nullabilityInfo = nullabilityInfoContext.Create(propertyInfo);
return nullabilityInfo.ReadState == NullabilityState.Nullable;
}
}
internal class Program
{
static void Main()
{
var nullable = new Item() { Value = null };
var notnull = new Item() { Value = "" };
Console.WriteLine($"nullable is nullable: {nullable.IsNullable()}");
Console.WriteLine($"notnull is nullable: {notnull.IsNullable()}");
// Output:
// nullable is nullable: True
// notnull is nullable: True
}
}
Подробнее здесь: https://stackoverflow.com/questions/763 ... me-net-7-0