您的位置:首页 > 编程语言 > C#

C# 开放类型与封闭类型

2016-03-03 21:15 423 查看
开放类型 具有泛型类型参数的类型

封闭类型 为所有类型参数都传递了实际的数据类型

using System;
using System.Collections.Generic;

namespace TypeObjectDemo
{

internal sealed class DictionaryStringKey<TValue>:Dictionary<string, TValue>{ }
class Program
{
static void Main(string[] args)
{
object o = null;
// Dictionary<,>为开放类型,有2个类型参数
Type t = typeof(Dictionary<,>);
// 尝试创建该类型的实例(失败)
o = CreateInstance(t);
Console.WriteLine();
// DictionaryStringKey<>为开放类型,有1个参数
t = typeof(DictionaryStringKey<>);
// 尝试创建该类型的实例(失败)
o = CreateInstance(t);
Console.WriteLine();
// DictionaryStringKey<Guid>就封闭类型
t = typeof(DictionaryStringKey<Guid>);
// 尝试创建(成功)
o = CreateInstance(t);
//证明能工作
Console.WriteLine(" object type = {0}", o.GetType());

Console.ReadKey();
}

private static object CreateInstance(Type t)
{
object o = null;
try
{
o = Activator.CreateInstance(t);
Console.WriteLine("builded {0}'s instance.", t.ToString());
}
catch(ArgumentException e)
{
Console.WriteLine(e.Message);
}
return o;
}
}
}输出如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: