当前位置: 首页 > news >正文

网站做淘宝客企业网站建设的目的有()

网站做淘宝客,企业网站建设的目的有(),杭州正规制作网站公司吗,wordpress 只显示某分类C#是一门静态类型的语言#xff0c;但是在C#4.0时微软引入了动态类型的概念。 dynamic 关键字dynamic用来定义动态对象#xff0c;我们来看一下动态类型的一些特性。 调用不同类的相同方法 我们有两个或多个不相关的类#xff0c;然后运行时需要可以调用到相同名称的方法但是在C#4.0时微软引入了动态类型的概念。 dynamic 关键字dynamic用来定义动态对象我们来看一下动态类型的一些特性。 调用不同类的相同方法 我们有两个或多个不相关的类然后运行时需要可以调用到相同名称的方法如下 1 using System;2 3 namespace Study4 {5 class Program6 {7 static void Main(string[] args)8 {9 dynamic obj GetObject(0); 10 Console.WriteLine(obj.Talk()); 11 12 Console.Read(); 13 } 14 15 private static Object GetObject(int type) 16 { 17 switch (type) 18 { 19 case 1: 20 return new Dog(); 21 } 22 return new Robot(); 23 } 24 } 25 26 public class Dog 27 { 28 public string Talk() 29 { 30 return Wang Wang!; 31 } 32 } 33 34 public class Robot 35 { 36 public string Talk() 37 { 38 return Im a Robot!; 39 } 40 } 41 } 我们的两个类没有继承也没有应用相同的接口但是可以调用到相同的方法使用GetObject(1)可以得到想要的结果。 这就是动态类型在编译时不会对方法等进行判断而是在运行时才进行处理如果调用到不存在的方法才会报错。 C#编译器允许你通过dynamic对象调用任何方法即使这个方法根本不存在编译器也不会在编译的时候报编译错误。只有在运行的时候它才会检查这个对象的实际类型并检查在它上面Talk()是什么意思。动态类型将使得C#可以以更加统一而便利的形式表示下列对象 来自动态编程语言——如Python或Ruby——的对象通过IDispatch访问的COM对象通过反射访问的一般.NET类型结构发生过变化的对象——如HTML DOM对象当我们得到一个动态类型的对象时不管它是来自COM还是IronPython、HTML DOM还是反射只需要对其进行操作即可动态语言运行时(DLR)会帮我们指出针对特定的对象以及这些操作的具体意义。这将给我们的开发带来极大的灵活性并且能够极大程度上地精简我们的代码。 动态类型使用注意 不能调用扩展方法委托与动态类型不能进行隐式转换不能调用构造函数和静态方法类不能继承dynamic、泛型参数不能使用dynamic和接口实现也不能使用dynamic实现动态行为 实现动态行为有3种方法分别可以用在不同的场合。 使用ExpandoObject类 直接使用ExpandoObject类来实现动态行为代码如下 1 using System;2 using System.Dynamic;3 4 namespace Study5 {6 class Program7 {8 static void Main(string[] args)9 { 10 dynamic obj new ExpandoObject(); 11 //添加属性 12 obj.name Li Lei; 13 obj.age 20; 14 //添加方法 15 obj.Add (Funcint, int, int) ((a, b) a b); 16 17 Console.WriteLine(Name: obj.name); 18 Console.WriteLine(Age: obj.age); 19 Console.WriteLine(Add: obj.Add(100, 123)); 20 21 Console.Read(); 22 } 23 } 24 } 输出如下 1 Name: Li Lei 2 Age: 20 3 Add: 223 继承DynamicObject类 通过继承DynamicObject类也可以实现动态效果示例如下 1 using System;2 using System.Dynamic;3 4 namespace Study5 {6 class Program7 {8 static void Main(string[] args)9 { 10 dynamic obj new MyClass(); 11 obj.name Li Lei; 12 obj.age 20; 13 obj.CallFunc(); 14 15 Console.Read(); 16 } 17 } 18 19 public class MyClass : DynamicObject 20 { 21 public override bool TrySetMember(SetMemberBinder binder, object value) 22 { 23 Console.WriteLine(设置 binder.Name 为 value); 24 return true; 25 } 26 27 public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) 28 { 29 Console.WriteLine(调用 binder.Name 方法); 30 result null; 31 return true; 32 } 33 } 34 } 输出如下 1 设置name为Li Lei 2 设置age为20 3 调用CallFunc方法 实现IDynamicMetaObjectProvider接口 如果已经继承了其它的类则可以通过实现IDynamicMetaObjectProvider接口来实现动态行为例子如下 1 using System;2 using System.Dynamic;3 using System.Linq.Expressions;4 5 namespace Study6 {7 class Program8 {9 static void Main(string[] args) 10 { 11 dynamic obj new MyClass(); 12 obj.CallFunc(); 13 14 Console.Read(); 15 } 16 } 17 18 public class MyClass : IDynamicMetaObjectProvider 19 { 20 public DynamicMetaObject GetMetaObject(Expression parameter) 21 { 22 Console.WriteLine(获取元数据); 23 return new MetaDynamic(parameter, this); 24 } 25 } 26 27 public class MetaDynamic : DynamicMetaObject 28 { 29 public MetaDynamic(Expression expression, object value) : base(expression, BindingRestrictions.Empty, value) 30 { 31 } 32 33 public override DynamicMetaObject BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args) 34 { 35 MyClass target base.Value as MyClass; 36 Expression self Expression.Convert(base.Expression, typeof (MyClass)); 37 var restrictions BindingRestrictions.GetInstanceRestriction(self, target); 38 Console.WriteLine(调用 binder.Name 方法); 39 return new DynamicMetaObject(self, restrictions); 40 } 41 } 42 } 输出如下 1 获取元数据 2 调用CallFunc方法  转载于:https://www.cnblogs.com/hammerc/p/4614313.html
http://www.sadfv.cn/news/275471/

相关文章:

  • 网站建设推广机构内蒙古建设工程造价信息网解释
  • 做刷单网站犯法吗网站开发网站运营怎么做
  • 专业网站建设市场wordpress主题特色功能
  • 手机网站开发怎么样手机seo关键词优化
  • 网上请人做软件的网站wordpress 自动分页
  • 做网站的心得体会网站网页设计优秀案例
  • 丰台体育馆网站建设虚拟机wordpress教程
  • 做脚本从网站引流为什么python不适合开发网站
  • 阿里云服务器windows系统网站搭建教程网络营销是什么样子的
  • 蓬莱网站建设公司报价织梦登录wordpress
  • 合肥做一个网站要多少钱网站开发 需求清单
  • 做微网站需要什么拖拽建设网站源码
  • 从化网站制作洞泾做网站公司
  • 国内好的网站设计打电话叫人做网站
  • 新乡网站建设服务精品展厅设计
  • 站长工具seo排名查询最近的军事新闻有哪些
  • 钦州网站制作网站建好后
  • 网站承建江西做网站优化好的
  • 网站开发怎样手机号验证公司logo墙设计图片
  • ASP图书信息管理系统网站建设拼多多跨境电商平台
  • 网站建设原因分析免费企业邮箱推荐
  • 专业网站制作软件广东省网站集约化建设方案
  • 南充做网站公司哪家好网站建设开发设计公司
  • 网站怎么做流量统计每平每屋设计家官网
  • 网站description是指什么口碑营销的前提及好处有哪些
  • 南昌seo网站开发西方设计网站
  • 天津手机模板建站成都网站开发工资
  • 做个网站跳转链接怎么做南阳河南网站建设价格
  • 东莞网站案例营销用中文版wordpress建英文站
  • 寻找手机网站建设怎么让付费网站免费