【发布时间】:2013-03-22 09:19:37
【问题描述】:
例如,我有一个基类,我需要一个属性
将在派生类中计算。我有两个变体(SomeProperty1 和 SomeProperty2):
public class BaseClass
{
public int SomeProperty1{get;set;}
public override int SomeProperty2{get;set;}
}
public class DerivedClass : BaseClass
{
public DerivedClass()
{
SomeProperty1 = 100;
}
public override int SomeProperty2
{
get
{
return 100;
}
}
}
问题是最好的方法是什么,SomeProperty1 或 SomeProperty2?
【问题讨论】:
-
算什么?
-
这取决于您计划如何进一步使用属性。如果您确定不应更改属性值 - 那么更好的解决方案将类似于
SomeProperty2。如果计划更改属性值 - 那么SomeProperty1的变体更适合。 -
您说“计算”,但您返回一个常数。如果你真的计算了这个值并且它可能是一个相当复杂的计算,那么在构造函数中只做一次似乎比每次访问属性时都计算更好。
标签: c# .net inheritance polymorphism virtual