gpt4 book ai didi

c# - 具有 2 个兼容类的属性

转载 作者:行者123 更新时间:2023-11-30 20:27:58 27 4
gpt4 key购买 nike

许可

public enum PermissionType
{
Read = 0,
Write = 1
}

public class Permission
{
public virtual PermissionType? Type { get; set; }
}

public class PermissionCreate : Permission
{
[Required]
[Range(0, 1)]
public override PermissionType? Type { get; set; }
}

类别

public class Category
{
public virtual int? Id { get; set; }
public virtual string Name { get; set; }
public virtual Permission Permission { get; set; }
}

public class CategoryCreate : Category
{
[Required]
public override string Name { get; set; }
[Required]
public override PermissionCreate Permission { get; set; }
}

public override PermissionCreate Permission { get;放; } 抛出一个错误,因为它需要匹配重写的成员类型。有没有办法用 Permission 和 PermissionCreate 覆盖属性,因为它们是兼容的?

最佳答案

由于您的 PermissionCreate 类已经派生自 Permission:

public class PermissionCreate : Permission

那么您已经可以将 PermissionCreate 对象分配给您的 Permission 属性。

但是,派生类必须与父类完全匹配。所以如果你这样做:

public class CategoryCreate : Category
{
[Required]
public override string Name { get; set; }
[Required]
public override Permission Permission { get; set; }
}

然后你可以这样做:

var test = new CategoryCreate { Permission = new PermissionCreate() };

关于c# - 具有 2 个兼容类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48026055/

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