请问 C# 中如何在集合中存入不同类型的值? |
您所在的位置:网站首页 › string存入数组 › 请问 C# 中如何在集合中存入不同类型的值? |
在 C# 中,可以使用泛型来解决你提到的问题。你可以使用泛型 Hashtable,这样就可以存储不同类型的值,同时也可以避免了类型转换和运行时错误的问题。以下是一个使用泛型 Hashtable 的示例代码:// 创建一个泛型 Hashtable,用于存储不同类型的实例Hashtable myHashtable = new Hashtable(); // 存储不同类型的实例myHashtable.Add(MyClassType.Type1, new MyType1());myHashtable.Add(MyClassType.Type2, new MyType2());myHashtable.Add(MyClassType.Type3, new MyType3()); // 遍历 Hashtable 中的元素,调用子类的 Say 方法foreach (MyBaseClass item in myHashtable.Values){ item.Say();} // 定义一个枚举,用于标识不同类型的实例enum MyClassType{ Type1, Type2, Type3} // 定义一个基类 MyBaseClass,其中包含一个 Say 方法abstract class MyBaseClass{ public abstract void Say();} // 定义三个子类,分别继承 MyBaseClass,实现 Say 方法class MyType1 : MyBaseClass{ public override void Say() { Console.WriteLine("MyType1 says hello!"); }} class MyType2 : MyBaseClass{ public override void Say() { Console.WriteLine("MyType2 says hello!"); }} class MyType3 : MyBaseClass{ public override void Say() { Console.WriteLine("MyType3 says hello!"); }}通过使用泛型 Hashtable,我们可以定义一个存储 MyBaseClass 子类实例的 Hashtable,并且可以遍历 Hashtable 中的元素并调用其 Say 方法,而不需要担心类型转换或运行时错误。同时,通过定义一个枚举 MyClassType,我们可以为不同类型的实例分配标识符,使得管理类可以在存储实例时知道对象是哪个子类的实例。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |