繁体   English   中英

如何在列表框中显示基类和子类的属性

[英]How to display properties of base class and subclasses in listbox

public class Animal
{

 public string Name {get;set;}


}

public string Cat : Animal
{

 public int AmountOfTeeth {get;set;}

}


//In Form.cs:

public void showAnimal(){


 var animalList = _animalManager.GetAnimals();


foreach(var animal in animalList)
{

     animalListbox.Items.Add(animal)
}

如何在列表框中同时显示Name和AmountOfLegs?

像这样:史蒂文14

}

ListBox组件显示ToString()方法返回的内容。 您可以通过覆盖方法来更改显示

public class Cat : Animal // note you probably mistyped "class" here
{
    public int AmountOfTeeth { get; set; }
    public override string ToString()
    {
        return Name + " has " + AmountOfTeeth + " teeth"
    }
}

我喜欢保持数据实体“干净”,而不是仅添加显示相关的属性/方法。 我通常要做的是为显示创建本地实体。 假设AnimalDisplay在其ctor中获取了基本实体。 有了新的实体,我可以添加我只想用于显示的任何道具,或者在该实体中覆盖ToString()并在列表中使用它。

另一个角度...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM