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

网站制作苏州买东西最便宜的购物平台

网站制作苏州,买东西最便宜的购物平台,东坑做网站,搜索引擎优化包括哪些如果你用MVC写过程序#xff0c;那么你应该知道ViewBag这个用于前后台的数据传递工具#xff0c;那么你是否对ViewBag的用法感到过疑惑呢#xff1f; ViewBag.Mode1lnew object();ViewBag.Model2new object();ViewBag.Model3new object();...... 我们知道#xff0c;在使用…如果你用MVC写过程序那么你应该知道ViewBag这个用于前后台的数据传递工具那么你是否对ViewBag的用法感到过疑惑呢 ViewBag.Mode1lnew object(); ViewBag.Model2new object(); ViewBag.Model3new object(); ...... 我们知道在使用对象属性的时候要先申明即这个对象的类中已经定义了这个属性才能使用此时VS的自动提示能弹出此类的所有属性然而使用ViewBag时你会发现 ViewBab. 之后不会弹出任何属性除非前面已经添加了属性而且我们可以自己随便写一个属性却可以正确运行。而这都是归功于dynamic这个属性。 1.在讲dynamic之前先来回顾一下var这个类型。 从 Visual C# 3.0 开始在方法范围中声明的变量可以具有隐式类型 var。 隐式类型的本地变量是强类型变量就好像您已经声明该类型一样但由编译器确定类型。 下面的两个 i 声明在功能上是等效的 var i 10; // implicitly typed(隐式申明 int i 10; //explicitly typed显示申明 var这个类型是通过编译器确定的即在编译时编译器会根据这个变量的值或引用的对象类型来决定这个变量的类型但要注意一旦这个变量的类型确定了之后就不可在更改。 var i 1; //i为int型  等价于 int i 1; i 1.0 //报错1.0为double型 注意var型变量在申明时必须初始化如下 var i 1; //正确 var i;  i 1; //错误 2.var用法举例 // 允许但不需要使用var因为可以将查询结果的类型显示的申明为IEnumerablestring string[] words { apple, strawberry, grape, peach, banana }; var wordQuery from word in words where word[0] g select word; // 因为元素类型为string类型不是匿名类型所以var是非必需的 foreach (string s in wordQuery) { Console.WriteLine(s); } //var must be used because the result is a collection of anonymous types, and the name of that type is not accessible except to the compiler itself.表达式中必须使用 var因为结果是一个匿名类型集合而该类型的名称只有编译器本身可以访问 var custQuery from cust in customers where cust.City Phoenix select new { cust.Name, cust.Phone }; //foreach iteration variable item must also be implicitly typed.foreach 迭代变量 item 也必须转换为隐式类型因为custQuery为匿名集合 foreach (var item in custQuery) { Console.WriteLine(Name{0}, Phone{1}, item.Name, item.Phone); } 3.dynamic 在通过 dynamic 类型实现的操作中该类型的作用是绕过编译时类型检查 改为在运行时解析这些操作。 dynamic 类型简化了对 COM API例如 Office Automation API、动态 API例如 IronPython 库和 HTML 文档对象模型 (DOM) 的访问。 在大多数情况下dynamic 类型与 object 类型的行为是一样的。 但是不会用编译器对包含 dynamic 类型表达式的操作进行解析或类型检查。 编译器将有关该操作信息打包在一起并且该信息以后用于计算运行时操作。 在此过程中类型 dynamic 的变量会编译到类型 object 的变量中。 因此类型 dynamic 只在编译时存在在运行时则不存在。 class Program { static void Main(string[] args) { dynamic dyn 1; object obj 1; dyn dyn 3; //编译可以通过dynamic可以绕过编译器 obj obj 3; //报错编译无法通过 System.Console.WriteLine(dyn.GetType()); System.Console.WriteLine(obj.GetType()); } } //输出结果 System.Int32 System.Int32 4.dynamic一些常见的用法 1在声明中作为属性、字段、索引器、参数、返回值或类型约束的类型。 class ExampleClass { // 字段 static dynamic field; // 属性 dynamic prop { get; set; } //返回值与参数 public dynamic exampleMethod(dynamic d) { dynamic local Local variable; int two 2; if (d is int) { return local; } else { return two; } } } 2在显式类型转换中作为转换的目标类型。 static void convertToDynamic() { dynamic d; int i 20; d (dynamic)i; Console.WriteLine(d); string s Example string.; d (dynamic)s; Console.WriteLine(d); DateTime dt DateTime.Today; d (dynamic)dt; Console.WriteLine(d); } // Results: // 20 // Example string. // 2/17/2009 9:12:00 AM 3在以类型充当值如 is 运算符或 as 运算符右侧或者作为 typeof 的参数成为构造类型的一部分的任何上下文中。 int i 8; dynamic d; if (someVar is dynamic) { } d i as dynamic; Console.WriteLine(typeof(Listdynamic)); //Console.WriteLine(typeof(dynamic));  //编译错误 5.dynamic与ViewBab ViewBab是一个dynamic类型的属性所以编译器不会对它进行检查所以我们可以自定义属性。我们也可以通过ExpandoObject() 这个类来实现我们自己的ViewBab看下面示例 public class Program { public static void Main(string[] args) { dynamic model new ExpandoObject(); //在运行时model 会转化为 ExpandoObject() 的一个实例 model.Index 0; //ExpandoObject() 有一个事件 PropertyChanged运行时动态触发这个事件 model.Number 0; //然后将Index与Number这个两个属性添加到类中 Console.WriteLine(model.Index); Console.WriteLine(model.Number); Console.ReadKey(); } } 也许你会觉得dynamic用到的不多所以不必深入理解但等到你真正遇到它时将会吃大亏。正如上面讲的那样它在COM API 、 动态API 、HTML对象模型的操作上有重要作用通过它可以简化操作但同时它也容易让人迷糊它所指向的究竟是什么样的对象类型因为简化通常意味着隐藏它将复杂的后台实现封装并开放见简单的接口给我们使用这样简化了我们的操作却然我们更容易迷惑我们不知道它为什么要这样做只知道可以这样做使得我们在很多问题上无法深入挖掘。在网站开发中深入理解dynamic有利于我们深入到框架内部去对我们学习.Net架构是非常有帮助的。 原文链接https://www.cnblogs.com/SilentCode/p/4920598.html 更多专业前端知识请上 【猿2048】www.mk2048.com
http://www.pierceye.com/news/671289/

相关文章:

  • 网站开发工作网络营销的网站分类有
  • 校园网上零售网站建设方案网站建设中页面模板
  • 网站如何报备外贸网站设计风格
  • 网上的网站模板怎么用百度网站认证官网
  • 上饶企业网站建设免费制作小程序游戏
  • cps推广网站建e网卧室设计效果图
  • php支持大型网站开发吗南海最新消息
  • 多语言企业网站html网站素材
  • 网站建设留言板怎么做优必选网站
  • 深圳建网建网站南博网站建设
  • 如何做防水网站一般网站做响应式吗
  • 回收手机的网站哪家好学生个人网页
  • 优秀甜品网站最有前景的十大行业
  • 手册设计南宁seo网站排名优化公司
  • 国外做科普视频的网站郑州做营销型网站的公司
  • 雄安网站设计制作即时灵感网站
  • 自己怎么优化网站排名wordpress 自动超链接
  • 建设工程安全监督备案网站wordpress最简易主题
  • 集客营销软件官方网站如何开发微信微网站
  • 青岛谁优化网站做的好微营销工具
  • 怎么才能建立一个网站卖东西php做网站用html做吗
  • 西安公司网站设计费用免费外国网站浏览器
  • 如何加快网站打开速度浦东新区建设机械网站
  • 求网站制作焦作网站建设的公司
  • 用python做网站不常见久久建筑网外墙岩棉保温板施工工艺
  • 做刷票的网站广告牌的样式大全
  • 手机登录网站怎么建设网站风格和功能设计方案
  • 网站报价天津网站在哪里建设
  • 湖北专业网站建设维修电话福清网站商城建设
  • 网站建设模块怎么使用线上注册公司流程和费用