C# 动态类型 以及 脚本调用(scriptRunTime)

在使用中让我感觉 好像 JavaScript中的 动态类型囧

先看动态类型

 class Program
    {
        static void Main(string[] args)
        {
            var streamReader = OpenFile(@"../../test.txt");
            string[] headerLine = streamReader.ReadLine().Split(',');

            var retList = new List<dynamic>();
            while (streamReader.Peek()>0)
            {
                string[] dataline = streamReader.ReadLine().Split(',');
                dynamic dynamicEntity = new ExpandoObject();
                for (int i = 0; i < headerLine.Length; i++)
                {
                    ((IDictionary<string,object>)dynamicEntity).Add(headerLine[i],dataline[i]);
                }
                retList.Add(dynamicEntity);
            }

            foreach (var item in retList)
            {
                Console.WriteLine("{0} : {1} : {2}" ,item.Age,item.Name,item.Sex);
            }
            Console.ReadLine();
        }

        private static StreamReader OpenFile(string fileName)
        {
            if(File.Exists(fileName))
                return  new StreamReader(fileName);
            return null;
        }
    }

test.txt文件如下  所以动态类型在运行时确定他的成员以及函数,甚至我们可以把一个函数赋值给他,并且调用 是不是很像JavaScript的动态类型呢

Name,Age,Sex
Jackmo,32,nan
Jackmo1,32,nan
Jackmo2,32,nan
Jackmo3,32,nan

 

ScriptRuntime 目前支持 IronPython IronRuby 以及 JavaScript

 

还是拿来主义吧 : http://blog.csdn.net/fcc_ecjtu/article/details/6804808

 

posted @ 2016-03-30 11:15  qingtian_Mo  阅读(1893)  评论(0编辑  收藏  举报