public static int GetResult<TType>(TType aObject) {
    if(aObject.mValue==12)
        return 99;
    return 20;
}

我如何检查字段“类型的值”,我猜想可能是反射,但是不确定如何?
谢谢。

最佳答案

当您要保留强类型和编译时安全性时,泛型很有用。如果您要求助于Reflection,则无需使用泛型。因此,一种方法是定义一个包含此属性的接口或基类:

public interface IFoo
{
    int Value { get; set; }
}


然后对类型进行一般约束:

public static int GetResult<TType>(TType aObject) where TType: IFoo
{
    if(aObject.Value == 12)
    {
        return 99;
    }
    return 20;
}

10-08 03:29