我的班级有一个 Func 属性,如下所示。
public class ClassA {
public Func<string, IClassB> MyProperty { get; set; }
}
MyProperty
无法检查null。因此我的问题是是否有可能验证MyProperty
已经以某种方式初始化?
编辑:我没有给你我的全貌,因为我相信这对于 Func 来说是完全一样的。对此感到抱歉。
问题是我实际上是在使用反射来实例化属性,并且在此之前我选择 MyProperty 的值以仅在未实例化时设置它。
...
var properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (var property in properties)
{
if (Attribute.IsDefined(property,typeof(WireAttribute)))
{
var propertyValue = property.GetValue(objectToWire, null);
if (propertyValue == null) //<-- THIS IS NOT TRUE FOR FUNC RETURN TYPES
...
对于常规属性,而不是 Func 返回类型,它按预期工作。