为简单起见,请使用以下示例,该示例在 C# 中无效:
public void SomeGenericFunc<T>(T classObject, T.Property.Type classPorpertyType)
{
string propertyName = nameof(classPropertyType);
// ...
}
示例简单类:
public class Car
{
public Car(){}
public int DoorsCount { get; set; }
public string Color { get; set; }
}
函数调用看起来像这样:
SomeGenericFunc<Car>(new Car(), Car.DoorsCount); //should be valid
SomeGenericFunc<Car>(new Car(), SomeType); //should be invalid at compile time: SomeType is not a property of Car
SomeGenericFunc<Car>(new Car(), Car.Color); //should be valid
显然T.Property.Type,C# 中没有可用的东西。在这个例子中,我不想nameof(Car.DoorsCount)每次调用函数时都通过。我希望nameof()调用发生在SomeGenericFunc<T>(),因此我可以SomeGenericFunc<T>()使用任何类和该类的任何属性进行调用。
那么是否可以在泛型函数中传递和期望类的属性类型?
相关分类