的类型调用的最具体方法这里总的OO noob问题。我有这两种方法中的一类为什么不是根据参数
private void StoreSessionSpecific(LateSession dbSession, SessionViewModel session)
{
session.LateSessionViewModel.Guidelines = dbSession.Guidelines.ToList();
}
private void StoreSessionSpecific(Session dbSession, SessionViewModel session)
{
// nothing to do yet...
}
当我打电话StoreSessionSpecific与dbSession是类型LateSession的(LateSession继承会议)
var dbSession = new LateSession();
StoreSessionSpecific(dbSession, session);
我希望最上面的一个被调用。由于dbSession是LateSession类型的。
@Paolo Tedesco这是如何定义类的。
public class Session
{
public int ID { get; set; }
public int SessionTypeId { get; set; }
public virtual SessionType SessionType { get; set; }
[Required]
public DateTime StartTime { get; set; }
[Required]
public DateTime EndTime { get; set; }
// Session duration in minutes
// public int SessionDuration { get; set; }
public virtual ICollection<Attendee> Attendees { get; set; }
}
public class LateSession : Session
{
public int MaxCriticalIncidentsPerUser { get; set; }
public int MaxResultCriticalIncidents { get; set; }
public virtual ICollection<Guideline> Guidelines { get; set; }
}
是否有一个特定的原因,你输入'var'而不是'LateSession'? – acron 2011-05-13 13:51:54
@acron,什么是不输入'var'的原因? – detunized 2011-05-13 13:53:40
@detunized,这只是我的看法,'var'是懒惰的,尤其是那时你像Saab一样为它分配一个特定的类型。为什么*不会*定义为'LateSession'?事实上,这整个问题不是反对使用'var'的证明吗? – acron 2011-05-13 13:59:35