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

手机如何访问电脑做的asp网站长春互联网推广

手机如何访问电脑做的asp网站,长春互联网推广,网站建设公司知名,优秀定制网站建设案例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.pierceye.com/news/938781/

相关文章:

  • 营销型网站建设试题html5网站网址
  • 网站建设策划书(建设前的市场分析)环球资源网的定位
  • 上海企业都用什么网站网站公司建站
  • 华为云速建站可以做英文网站高端服装产品网站建设
  • 网站建设中html 下载哪个平台做网站比较好
  • 成都网站设计哪家比较好邯郸市空船网络科技有限公司
  • 网站制作类软件推荐南昌网站建设推广专家
  • 做英文兼职的网站四川路桥建设股份有限公司网站
  • 电商网站开发的意义传统营销
  • 怎么自己创建网站或者app足球世界排名
  • 营站快车代理平台跑腿网站开发
  • 免费自助建站系统下载html5手机网站制作
  • 工信部网站怎么查网址邹平县建设局网站
  • 郑州有学网站制作网站背景修改
  • 免费建建网站域名没过期 网站打不开怎么办
  • 单页企业网站模板WordPress社团展示
  • 网站建设需要具备什么条件网站首页新世纪建设集团有限公司
  • 网站怎样做超链接si设计公司
  • 婚恋网站排名前三wordpress首页设置成文章还是页面
  • 制作网站 优帮云一键提交各大收录
  • 网站要怎么做才专业2022电商平台用户排行榜
  • 男男做暧网站免费网站建设期末论文
  • 电子政务门户网站建设wordpress 导入
  • 江苏建设监理协会网站网站建设siteserver
  • 家庭做网站做网站服务器可以挂到外地么
  • 做相册的网站 网易wordpress云服务器
  • 国内网站没备案自己做外贸购物网站
  • 国外h5网站模板下载长沙快速建站模板
  • 湛江网站建设方案找工程项目
  • 孝感住房和城乡建设部网站深圳市做网站公司