使用泛型T

时间:2016-03-09 11:28:06

标签: c# generics base-class

我有这个基类:

public class BaseEvent
{
    public int EventID { get; set; }

    public int GetEventID()
    {
        return EventID;
    }
}

然后我有另一个继承自那个基类的类:

public class ValidationResult<T> where T : BaseEvent
{
    private void AddEventStatusUpdater(ValidationResult<T> validationResult)
    {
        validationResult.GetEventID();
    }
}

我遇到的问题是我无法从基类访问GetEventID()方法。

我认为这可能是因为我使用了T泛型。有没有其他方法可以访问此方法?

2 个答案:

答案 0 :(得分:1)

public class ValidationResult<T> where T : BaseEvent

T必须是BaseEvent,而不是ValidationResult<T>继承自BaseEvent。那是:

public class ValidationResult<T> : BaseEvent

并且T没有任何约束

这就是你想要的吗?

答案 1 :(得分:0)

您已经开始实现通用接口,而不是从基类继承。我想你打算做以下事情:

public class ValidationResult : BaseEvent
{
    private void AddEventStatusUpdater()
    {
        var id = this.GetEventID();
    }
}
相关问题