我有以下界面:

public interface IView<TViewModel>
{
    TViewModel ViewModel { get; set; }
}

public interface IViewModel : INotifyPropertyChanged
{
}


我想确保泛型TViewModel始终是实现接口IViewModel的类。我可以执行以下操作:

public interface IView
{
    IViewModel ViewModel { get; set; }
}


但是,那时我将无法访问ViewModel特定类的所有属性和方法。

如何确保TViewModel始终是实现接口IViewModel的类?

最佳答案

使用where clause指定通用类型约束。

public interface IView<TViewModel> where TViewModel : IViewModel
{
    TViewModel ViewModel { get; set; }
}

关于c# - 验证泛型类型实现特定接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30093792/

10-10 02:47