当前位置: 首页 > 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.yutouwan.com/news/275471/

相关文章:

  • 广州网站建设clov5r网站备案之前需要建好网站吗
  • 汕尾手机网站建设报价html网页留言板代码
  • 建设医院网站ppt模板下载网站站内优化方法
  • 当今做啥网站能致富北京网页设计模板
  • 木屋网站建设成功的品牌推广案例分析
  • 天台县建设规划局网站国家企业年报系统官网
  • 网站开发制作合同范本aspnet网站开发实战
  • 甘肃省集约化网站建设试点网站开发薪水一般多少钱
  • 营销型网站建设优化建站网站建设方案模板下载
  • 个人网站psd网站导航这么做
  • 开发网站做图文水印逻辑wordpress+搜索无效
  • dw做的个人网站新闻发稿平台有哪些?
  • 怎样建设网络游戏网站南昌做建网站的
  • 安徽省公共资源交易中心网站网站集约化建设力度
  • 鹰潭做网站公司公司网站续费帐怎么做
  • 网站设计运行费用建设手机网站经验分享
  • 广州网站排名推广公司用Python做网站如何配置域名
  • 电商网站开发面试题wordpress 数据 拆分
  • 全国购物网站排名个人网站开发的背景
  • 辽阳市建设行业培训中心网站咸阳住房和城乡建设局网站
  • 网站服务器租用还是托管呢企业网站策划书
  • 徐州网站建设xzqjw云主机网站面板
  • 手机网站怎么做微信登陆6网站对图片优化
  • 做服装公司需要什么网站服务器维护要多久
  • 揭阳网站开发定制seo网络优化是做什么的
  • 设计师网络称呼无锡网站建设优化公司
  • WordPress背景图片编辑seo优化培训学校
  • 东莞企业建站申请多少钱海南省建设厅网站
  • 中国建设劳动学会监制网站wordpress搬家教程
  • 潍坊企化网站建设成都网络推广中联无限