我有一个抽象类,其抽象属性设置为同时具有Get和Set。我知道我总是希望能够得到此属性来自派生类,但有些情况下它对集合没有意义。此属性在某些类型的派生类中。抽象属性的可访问性
我不能忽略派生类中的Set访问器(请参阅下面的代码示例)。我可以重写派生类中的set访问器,以便与用户传递的值无关。但是有没有另外一种方法可以使特定派生类中的属性只读?最终,我在属性网格中显示这些属性,并且我不希望用户将值输入到无法执行任何操作的字段中。也许我只是将该属性归类为只读在特定的派生类中?
另外,我真的不太会混淆任何类型描述符的东西,以获得属性在属性网格中正确显示,例如重写ICustomTypeDescriptor。
public abstract class MyClass
{
public abstract string MyProperty
{
get;
set;
}
}
public abstract class MyDerivedClass
{
public override string MyProperty
{
//VS complains that the Set accessor is missing
get;
}
}
只是想知道...如果你为它定义一个get/set方法,属性是否真的抽象?或者这些是抽象的get/set方法? – 2009-06-08 22:32:26
奇数。我只是复制了你的类,为第二个类继承了继承属性,并且可以毫无问题地构建。 – 2009-06-08 22:33:35