更新设计与接口的类
什么是设置这个类的最佳方式?即致电SetupInstruction()
方法?我想让这个方法是虚拟的,所以覆盖的类可以有自己的实现。在重写的类中,我将设置其他对象/属性。
public abstract class InstructionInfo : IInstruction
{
protected readonly IUserSession UserSession;
protected readonly IReadOnlySession ReadOnlySession;
protected InstructionInfo(int instructionID)
{
InstructionID = instructionID;
}
protected virtual void SetupInstruction()
{
_myInstruction = null; //call db and set up...
}
#region interface members
private Instruction _myInstruction;
public Instruction MyInstruction
{
get
{
**SetupInstruction();**
return _myInstruction;
}
private set { _myInstruction = value; }
}
#endregion
}
我想你可能会更好地服务于http:// codereview。stackexchange.com – 2012-01-18 20:34:09
你没有在构造函数中设置它的原因是什么? – 2012-01-18 20:43:00
@JonHanna Resharper抱怨在构造函数中设置虚拟成员调用......我对于副作用可能会产生什么影响...... – Haroon 2012-01-18 20:44:42