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

时间: 2024-10-12 01:06:03

C# 动态类型 以及 脚本调用(scriptRunTime)的相关文章

动态类型和匿名类型在asp.net webapi中的应用

1.  动态类型用于webapi调用 假设需要调用一个webapi,webapi返回了一个json字符串.字符串如下: {"ProductId":"AN002501","ProductName":"XX洗衣粉","Description":"","UnitPrice":9.9} 问:如何获得json字符串中的值? 常规的做法是:先构建一个类,然后再使用JsonConv

OC多态,动态类型绑定

// //  main.m //  OC7类 // //  Created by Zoujie on 15/8/23. //  Copyright (c) 2015年 Zoujie. All rights reserved. // #import <Foundation/Foundation.h> #import "Fraction.h"//导入头文件 #import "Complex.h" #define Choose  0 int main(int 

python学习笔记17(动态类型)

动态类型 在我们接触的对象中,有一类特殊的对象,是用于存储数据的,常见的该类对象包括各种数字,字符串,表,词典.在C语言中,我们称这样一些数据结构为变量,而在Python中,这些是对象. 对象是储存在内存中的实体.但我们并不能直接接触到该对象.我们在程序中写的对象名,只是指向这一对象的引用(reference). 引用和对象分离,是动态类型的核心.引用可以随时指向一个新的对象: a = 3 a = 'python' 第一个语句中,3是储存在内存中的一个整数对象,通过赋值,引用a指向对象3. 第二

c++知识点总结--静态与动态类型

对象的静态类型(static type),就是它在程序中被声明时所采用的类型 对象的动态类型(dynamic type)是指“目前所指对象的类型” vitual 函数是动态绑定而来,调用一个virtual函数时,究竟调用哪一个函数实现,取决于发出调用的那个对象的动态类型 class Shape{ public: enum ShapeColor{ Red, Green, Blue = 1, Org }; void printColor(){ cout << Red << Green

Objective-C中的多态、点语法和动态类型总结

一. 多态 1. 多态概念,定义 什么是多态:多态就是某一类事物的多种形态: 表现形式:  Animal *ani = [Dog new]; 多态条件:1.有继承关系     2.有方法的重写 2.多态代码实现: //实例化猫的对象 Animal *animal  = [Cat new]; //父类的指针指向子类对象: [animal eat]; //实例化狗的对象 animal = [Dog new]; //父类的指针指向子类对象. [animal eat]; 3.多态注意点: 1) 如果存在

Java 8 动态类型语言Lambda表达式实现原理分析

Java 8支持动态语言,看到了很酷的Lambda表达式,对一直以静态类型语言自居的Java,让人看到了Java虚拟机可以支持动态语言的目标. import java.util.function.Consumer; public class Lambda { public static void main(String[] args) { Consumer<String> c = s -> System.out.println(s); c.accept("hello lambd

iOS开发笔记系列-基础3(多态、动态类型和动态绑定)

多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力成为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类的定义都封装了响应特定方法所需要的代码,这使得它独立于其他的类定义.这是因为Objective-C的运行时系统在执行方法时知道消息的接收者是哪个类的对象,它总是携带有关“一个对象属于哪个类”这样的信息,该信息能使系统在运行时做出决定,而不是在编译时. 动态绑定和id类型 id数据类型是一种通用的对象类型,可以用来存储属于任何类的对象.当使用id类型的时候,程序

C# 4.0中的动态类型和动态编程

# 4.0的主题就是动态编程(Dynamic Programming).虽然C#仍然是一种静态语言,但是对象的意义开始变得越来越“动态”.它们的结构和行为无法通过静态类型来捕获,或者至少编译器在编译程序时无法得知对象的结构和行为. C#引入了一种新的静态类型”dynamic”,当你拥有了一个dynamic类型的对象后,你“对它做的事情”只会在运行时进行解析.设想我们拥有这样两个类,分别表示两种饮料: public class Coffee {public string GetName() { r

Objective-C之成魔之路【11-多态性、动态类型和动态绑定】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 多态这个其它语言也有.动态类型有类似的,但不完全相同. 动态绑定别的语言也有类似,但没有objective-c用的这么多. 多态能够使来自不同类的对象定义相同名称的方法. 动态类型能使程序直到执行时才确定对象所属的类. 动态绑定则能使程序直到执行时才确定实际要调用的对象方法. 多态性是指在父类中定义的成员变量和