扩展继承的属性 C#
Extending inherited properties c#
我有一个 class 继承自基 class
还有两个 classes 具有这些原始 classes 的列表作为属性
我认为这两个新 classes 应该具有继承性,但似乎无法正常工作。
public class Attribute
{
public string Name { get; set; }
public string ShortName { get; set; }
public bool Standard { get; set; }
}
public class BaseAttribute : Attribute
{
public int Value { get; set; }
}
public class Profile
{
public List<Attribute> AttributeList = new List<Attribute>
{
new Attribute {Name = "Hands", ShortName = "HA", Standard = true},
new Attribute {Name = "Arms", ShortName = "AR", Standard = true},
};
}
public class BaseProfile: Profile
{
public List<BaseAttribute> AttributeList
{ get; set; }
}
我可以更改继承的 AttributeList 的类型以扩展它以在每个元素上包含值 属性 吗?
或者我根本不应该继承 BaseProfile 吗?
我已经尝试在这里(以及更广泛的互联网)上进行搜索,并且有许多有助于简单继承的答案,但我找不到 属性 类型的答案在继承过程中发生了变化。
class 属性的名称不正确,请为其选择另一个名称。 (这是一个标准的 .Net class,即使在 class 名称的末尾也最好避免使用它,因为以属性结尾意味着此 class 是从属性继承的。
public class Attribute
{
public string Name { get; set; }
public string ShortName { get; set; }
public bool Standard { get; set; }
}
public class BaseAttribute : Attribute
{
public int Value { get; set; }
}
public class Profile<T> where T:Attribute,new ()
{
public List<T> AttributeList = new List<T>
{
new T {Name = "Hands", ShortName = "HA", Standard = true},
new T {Name = "Arms", ShortName = "AR", Standard = true},
};
}
public class BaseProfile : Profile<BaseAttribute>
{
}
我有一个 class 继承自基 class
还有两个 classes 具有这些原始 classes 的列表作为属性
我认为这两个新 classes 应该具有继承性,但似乎无法正常工作。
public class Attribute
{
public string Name { get; set; }
public string ShortName { get; set; }
public bool Standard { get; set; }
}
public class BaseAttribute : Attribute
{
public int Value { get; set; }
}
public class Profile
{
public List<Attribute> AttributeList = new List<Attribute>
{
new Attribute {Name = "Hands", ShortName = "HA", Standard = true},
new Attribute {Name = "Arms", ShortName = "AR", Standard = true},
};
}
public class BaseProfile: Profile
{
public List<BaseAttribute> AttributeList
{ get; set; }
}
我可以更改继承的 AttributeList 的类型以扩展它以在每个元素上包含值 属性 吗? 或者我根本不应该继承 BaseProfile 吗?
我已经尝试在这里(以及更广泛的互联网)上进行搜索,并且有许多有助于简单继承的答案,但我找不到 属性 类型的答案在继承过程中发生了变化。
class 属性的名称不正确,请为其选择另一个名称。 (这是一个标准的 .Net class,即使在 class 名称的末尾也最好避免使用它,因为以属性结尾意味着此 class 是从属性继承的。
public class Attribute
{
public string Name { get; set; }
public string ShortName { get; set; }
public bool Standard { get; set; }
}
public class BaseAttribute : Attribute
{
public int Value { get; set; }
}
public class Profile<T> where T:Attribute,new ()
{
public List<T> AttributeList = new List<T>
{
new T {Name = "Hands", ShortName = "HA", Standard = true},
new T {Name = "Arms", ShortName = "AR", Standard = true},
};
}
public class BaseProfile : Profile<BaseAttribute>
{
}