gpt4 book ai didi

c# - 通用类无法接受直接指向通用类型限制的对象

转载 作者:行者123 更新时间:2023-11-30 18:00:47 25 4
gpt4 key购买 nike

我有一个用如下所示的继承链定义的 C# 数据类:

public abstract class EntityBaseCore
public abstract class EntityBase : EntityBaseCore
public partial class AdmSite : EntityBase

还有一个像这样定义的泛型类:

public abstract class ViewModelSecurityBase<T> : Screen, where T : EntityBaseCore
public abstract class EditorViewModelBase<T> : ViewModelSecurityBase<T> where T : EntityBaseCore

我的 View 模型类如下所示:

public class SiteViewModel : EditorViewModelBase<AdmSite>

这失败了

The type 'Yargo.DataModel.AdmSite' cannot be used as type parameter 'T' in the generic type or method 'Yargo.Common.ViewModel.EditorViewModelBase'. There is no implicit reference conversion from 'Yargo.DataModel.AdmSite' to 'Yargo.DataModel.EntityBaseCore'

AdmSite 和 EntityBaseCode 之间的继承链似乎是直接的。我不明白为什么会失败。

最佳答案

下面的代码似乎对我有用。

public class Screen { }
public abstract class EntityBaseCore
{ }

public abstract class EntityBase : EntityBaseCore
{ }
public partial class AdmSite : EntityBase
{ }

public abstract class ViewModelSecurityBase<T> : Screen where T : EntityBaseCore
{ }
public abstract class EditorViewModelBase<T> : ViewModelSecurityBase<T> where T : EntityBaseCore
{ }

public class SiteViewModel : EditorViewModelBase<AdmSite>
{ }

关于c# - 通用类无法接受直接指向通用类型限制的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9705904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com