public class SomeClass<TElement>
{
TElement _element;
public void SomeFunction()
{
_element.Property = someValue;
}
public TElement Element
{
get
{
return _element;
}
set
{
_element = value;
}
}
}
这本质上就是我想要做的。此类中的“ TElement”将始终是从包含“属性”的类继承的类。我希望能够访问“属性”并对其进行修改,并且我希望“ SomeClass”公开类型为“ TElement”的属性。当我尝试执行此操作时,由于“ TElement不包含...的定义”,因此无法访问属性。
如果我不使用“ TElement”,而是直接使用上述类,我将不知道如何使“ Element”属性显示为实例上不同的类型。
我会以错误的方式行事吗?有人能指出我正确的方向来获得这种功能吗?
谢谢
最佳答案
public class SomeClass<TElement>
where TElement : YourBaseClass
{ ... }
这称为generic type constraint:
在通用类型定义中,where子句用于指定对类型的约束,这些约束可用作通用声明中定义的类型参数的参数
关于c# - 访问属性(property),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31935751/