Null's Notebook

代码笔记

正在浏览标签为 Type 的文章

关于泛型的介绍和基本操作,可以参见 MSDN,以及各种博客文章:C# 泛型简介 、泛型介绍(C# 编程指南),这里就不再赘述。 下面是要用到的泛型: internal interface IStack { } public class Stack<T> : IStack where T : new() { public T Value { get; set; } } public class IntStack : Stack<int> { } public class DoubleStack : Stack<double> { }

有些时候,某个方法的返回值是个枚举类型,比如描述登录结果: public enum LoginResult { Success, WrongPassword, UserNotExist, Forbidden, Unknown } 当前段UI获取到登陆方法的返回结果时,就需要告诉用户登录是否成功、什么原因失败的。如果直接使用 ToString() 方式直接返回枚举变量的名称,显然不合适。通常的做法是使用各 switch 来转换,弊端是要写过多的代码;或者构造一个 string[] msg ,再根据 LoginResult 的 int 值来相应的取,弊端是类型的int值必须是连续的或者 string[] msg 的个数大于或等于 枚举类型的最大 int 值 ,一一对应起来也比较麻烦 。

有时候,为了快速批量处理已经实现某个基类或者某个接口的子类,需要通过反射的方式获取到他们的类类型(Type),然后再通过 Activator.CreateInstance(objType); 或者 Assembly.Load(path).CreateInstance(typeName); 或者 Assembly.LoadFile(filePath).CreateInstance(typeName); 创建对象实例。

无觅相关文章插件,快速提升流量