网站的基本知识,宁波seo快速优化怎么做,公司推广做哪个网站吗,版面布局网站的域名和所采用的版面布局形式C#进化史 C#进化史从数据类型看C#演化C# 1写的产品类C# 强类型集合——解决限制1和2c# 自动属性——解决限制3c# 4 命名实参C# 1~C# 4的演变历程排序C# 1——提供一个IComparer实现C# 2——泛型比较器C# 3——Lambda表达式、扩展方法C# 1~C# 3简化排序的历程查询集合C# 1——循… C#进化史 C#进化史从数据类型看C#演化C# 1写的产品类C# 强类型集合——解决限制1和2c# 自动属性——解决限制3c# 4 命名实参C# 1~C# 4的演变历程排序C# 1——提供一个IComparer实现C# 2——泛型比较器C# 3——Lambda表达式、扩展方法C# 1~C# 3简化排序的历程查询集合C# 1——循环测试条件C# 2——测试和打印分开C# 3——移除委托逻辑的复杂包裹C# 1~c# 3查询集合的演化处理未知数据处理可空值的方式可选参数和默认值小结C# 3的重大改进——LINQ查询表达式和进程内查询查询XML查询SQLC# 4的重大改进——互操作性COM和动态语言简化的COM互操作与动态语言互操作——dynamicC# 5的重大改进——异步函数 C# 1可以看做是2001年Java语言的升级版——额外的特性语言特性的属性、委托和事件foreach循环using语句显式方法重载操作符重载自定义值类型等。 从数据类型看C#演化 C# 1写的产品类 存在的三个限制 ArrayList不能提供编译时信息不小心添加错误类型的数据不会被编译器发现属性有公共的取值方法对应的赋值方法也必须是公共的封装字段有点麻烦需要先声明字段然后封装属性。C# 强类型集合——解决限制1和2 C# 2中最重要的改进——引入了泛型试图添加错误类型的数据时会得到编译时错误属性拥有了私有的赋值方法。c# 自动属性——解决限制3 C# 3还提供了Lambda表达式等特性。 c# 4 命名实参 非常不幸的是对于需要只读属性没有快捷方式。 C# 4增加了命名实参——当包含多个参数参数类型相同或某个参数为null时——使代码的含义更清楚。 C# 1~C# 4的演变历程 Product类型的演变历程展示了越来越好的封装性、越来越强的类型化以及越来越容易的初始化。 排序 按名称排序。 C# 1——提供一个IComparer实现 存在的限制 必须引入一个额外的类型来帮助排序Copare方法中需要强制类型转换foreach语句中也需要隐式的强制类型转换由于ArrayList不是强类型所以可能会造成执行时失败。C# 2——泛型比较器 C# 2不仅解决了限制2还解决了限制1 现在无需额外的比较器类了而是创建一个委托实例。 C# 3——Lambda表达式、扩展方法 Lambda表达式简化了委托——无需delegate关键字也无需指定参数类型。 扩展方法——为List提供了原本没有的排序方法。 C# 1~C# 3简化排序的历程 查询集合 找出最贵的产品。 C# 1——循环测试条件 foreach进行循环用if测试条件再显示产品。 C# 2——测试和打印分开 变量test的初始化使用了匿名方法print变量的初始化使用了方法组转换。并不是上述代码比C# 1的代码简单它只是鼓励你多做分解。下面是C# 2的另一个版本。 C# 3——移除委托逻辑的复杂包裹 C# 1~c# 3查询集合的演化 处理未知数据 处理可空值的方式 C# 1有三种解决方案 比如产品价格decimal类型围绕decimal建立一个引用包装类型维护一个单独的Boolean标识它表示价格是否已知“魔法数”——使用一个特殊值表示未知价格。C# 2引入可空类型 C# 2引入NullableT类型甚至提供了一些语法糖decimal? price;。如此一来可以将null作为参数传递。 注意:可空类型和null进行比较总是会返回false因此对于price 10等价的!(price 10会得到错误的答案。 可选参数和默认值 对于方法的某些参数可能总是使用特定的值传统的方式是使用方法重载。C# 4引入了可选参数来简化这一操作。——public Product(string name, decimal? price null)。 小结 C# 3的重大改进——LINQ C# 2更像是对C# 1各种不足之处的修修补补而C# 3几乎所有的特性都是为了构建LINQ。 查询表达式和进程内查询 上述代码使用了LINQ如果不用反而更简单但是在一些复杂情况下换成方法调用来写代码会变得难以阅读这时LINQ就显得非常好用了。 LINQ借用了SQL的语法和一些思路。但它可以从任意源比如XML获取数据。 查询XML 查询SQL 为什么将所有数据从数据库拽回来然后使用.NET查询和排序为什么不直接让数据库做它擅长的事 事实上这正是LINQ to SQL所做的事——用C#代码表示查询但却是作为SQL来执行的。 C# 4的重大改进——互操作性COM和动态语言 简化的COM互操作 使用命名实参调用SaveAs并且许多可选参数被省略正常情况下SaveAs有十个额外的实参C# 4将PLAPrimary Interop Assembly 主互操作程序集的相关部分内嵌到调用代码中因此无需单独部署PLA。与动态语言互操作——dynamic dynamic——它对C#编译器来说是一个类型但CLR并不认识它。下例展示与Python代码进行交互。 动态类型可能会在执行时才暴露代码编写错误。 C# 5的重大改进——异步函数 Windows Forms中的线程有两条金科玉律 不能阻塞UI线程不能在任何线程中访问UI元素。使用异步函数 来自为知笔记(Wiz)转载于:https://www.cnblogs.com/qianzi067/p/6019615.html