反射_案例1_读文件流<15/9/2017>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using System.IO;
namespace 案例1
{
class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(@"C:\Users\Maximilian Liu\Desktop\list.txt",Encoding.GetEncoding("gbk"));//中文路径名报错,需要改编码格式
string str = sr.ReadLine();
sr.Close();
Type t = Type.GetType(str);
ConstructorInfo ci = t.GetConstructors()[0];
object o= ci.Invoke(null);//无参传个空类型进来,不然会报错
Food f = (Food)o;
f.Eat();
}
}
public abstract class Food
{
public abstract void Eat();
}
public class Meat : Food
{
public override void Eat()
{
Console.WriteLine("肉被吃了");
}
}
public class Fruit : Food
{
public override void Eat()
{
Console.WriteLine("各种水果被吃了");
}
}
public class Fish : Food
{
public override void Eat()
{
Console.WriteLine("青鱼");
}
}
}
在桌面上创建一个文档然后写入内容保存
复制路径,在代码中写入文件流读取路径
运行
如果要读不同的类,直接在txt文件中改内容就可以重新反射执行新的对象类了