本文介绍了调用基类一集派生方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个抽象类命名为A,和其他类(B,C,D,E,...)实现A. 我的派生类持有不同类型的值。 我也有一个对象的列表
I have one abstract class named A, and other classes (B, C, D, E, ...) that implements A. My derived classes are holding values of different types. I also have a list of A objects.
abstract class A { } class B : class A { public int val {get;private set;} } class C : class A { public double val {get;private set;} } class D : class A { public string val {get;private set;} } class Program { static void Main(string[] args) { List list = new List { new B(), new C(), new D(), new E() }; // ... foreach (A item in list) { Console.WriteLine(String.Format("Value is: {0}", item.val); } } }。 ..where的.VAL不是由基类OFC闻名。
...where the .val is not known by the base-class ofc.
我怎样才能得到这个动态的行为吗?我不想在长时间使用的getType 。开关/ if语句
How can i get this dynamic behaviour? I don't want to use getType in a long switch/if-statements.
推荐答案试试这个:
using System; using System.Collections.Generic; abstract class A { public abstract dynamic Val { get; set; } } class B : A { public override dynamic Val { get; set; } } class C : A { public override dynamic Val { get; set; } } class D : A { public override dynamic Val { get; set; } } class Program { static void Main(string[] args) { var list = new List<A> { new B(), new C(), new D() }; // ... foreach (A item in list) { Console.WriteLine(String.Format("Value is: {0}", item.Val)); } } }更多推荐
调用基类一集派生方法
发布评论