小编Luc*_*ano的帖子

如何创建和设置多态属性?

我想创建一个可以在属性中使用不同类型值的类.我正在尝试使用多态,但我还没有学习如何正确地做到这一点,因此我的建议请求.

我有一个基类和两个继承它的类:

public abstract class BaseClass
{
    public string Name { get; set; }
    public Unit Unit { get; set; }
}

public class DerivedClassFloat : BaseClass
{
    public float Value { get; set; }

    public override string ToString()
    {
        return Value.ToString();
    }
}

public class DerivedClassString : BaseClass
{
    public string Value { get; set; }

    public override string ToString()
    {
        return Value;
    }
}
Run Code Online (Sandbox Code Playgroud)

一切都很好,我可以创建一个List并添加不同的专用子类.当我需要更改列表中项目的值时,我的问题出现了:

foreach (var item in ListOfBaseClasses)
{
   if(item is DerivedClassFloat)
     ((DerivedClassFloat) item).Value = float.NaN; …
Run Code Online (Sandbox Code Playgroud)

c# polymorphism design-patterns

7
推荐指数
1
解决办法
2686
查看次数

标签 统计

c# ×1

design-patterns ×1

polymorphism ×1