您的位置:首页 > 其它

泛型约束where条件的使用(通过类型参数动态反射创建实例)

2014-04-08 14:00 726 查看
定义抽象的人类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace ConsoleApplication1

{ public abstract class person

{

public abstract string ting(); public abstract string shuo();

}

}

定义子类 girl 和boy 类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace ConsoleApplication1 {

public class girl : person

{

public override string ting() { return "girl ting"; }

public override string shuo() { return "girl shuo"; }

}

}

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace ConsoleApplication1 {

public class boy: person

{

public override string ting() { return "boy ting"; }

public override string shuo() { return "boy shuo"; }

}

}

定义模具类可以 可以返回一个boy或者girl的实例

using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks;

namespace ConsoleApplication1 {

public class zhongjian {

public static person CreatePerson<T>() where T:person

{

person p = Activator.CreateInstance(typeof(T)) as person; return p;

}

}

}

模拟环境类 program

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{ person p= zhongjian.CreatePerson<girl>(); string shuo= p.shuo(); string ting= p.ting(); Console.WriteLine(shuo+"\t"+ting);

Console.ReadKey();

}

}

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