使用泛型 T 访问基础 class 方法

Accessing base class method using generic T

我有这个基地class:

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

    public int GetEventID()
    {
        return EventID;
    }
}

然后我有另一个 class 从那个基础继承而来:

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

我遇到的问题是我无法从基础 class.

访问 GetEventID() 方法

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

public class ValidationResult<T> where T : BaseEvent

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

public class ValidationResult<T> : BaseEvent

那里T不会有任何约束

这是你想要的吗?

您已经开始实现通用接口,而不是从基类继承 class。我认为您打算执行以下操作:

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