c# 3.0语言主要增强
1隐含类型的局部变量
var i=5;
var h=23.56;
var s="Cshap"
var intarr=new[]{1,2,3};
var 为关键字,可以根据后边的初始化语句自动推断类型,初始化语句必须为表达式,切编译时可以推断类型。var声明仅仅局限于局部变量,亦可以用于foreach,using等语句。数组也可以作为隐含类型。这里面var 编译的的时候根据后边表达式的类型生成相对应的类型局部变量,比如 i 为int类型 而不是生成object 的弱类型,所以这边var 依然为强类型。 var 其实这里不是个类型,我们可以理解为一个占位符,编译期间,编译器就会 把他替换成一个具体的类型而且是一个强类型。表达式不能为null,也就是说 不能直接写成var i=null;因为编译器不能推断出null的类型,编译错误,当然也不能直接写 var s(后边没有表达式)。
foreach(var i in array)array为数组,编译时候 i的类型为当前遍历到的元素的类型(强类型)
2扩展方法
3对象与集合初始化器
public class Point()
{
private int x;
public int X
{
get{ return x;}
set{ x=value;}
}
}
var a=new Point();相当于var a=new Point{X=1}
几个初始化器、
List<int> list=new List<int>{1,2,3,4,5};
4匿名类型
var a=new {name="123",pwd="123"}
编译器可以推断出任何问题 比如推断出类型的属性,一个是name ,一个是pwd,(还有编译器自动生成的字段(保存属性值))
编译相当于替我们生成类型比如:
class SomeType
{
//字段
private string _name;
private string _pwd;
//属性
public string name {get set}
public string pwd {get set}
}
SomeType 这里只是随便写,也不知道编译器生成个什么名字,SomeType直接继承与object
匿名类型直接继承System.Object
匿名类型的成员是编译器根据初始化器推断而来的一些读写属性。不用声明其中字段或属性的类型,由编译器推断而出。
匿名类型适合局部内使用。不合适在各个地方穿梭。
5Lambda表达式
6查询表达式(LINQ)
7表达式树
c# 3.0语言主要增强的更多相关文章
- Swift2.0语言教程之闭包
Swift2.0语言教程之闭包 Swift2.0语言闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用.Swift中的闭包与C和Objective-C中的代码块(blocks)以及其他一些编程语 ...
- XXL-JOB v2.3.0 发布 | 易用性增强
转: XXL-JOB v2.3.0 发布 | 易用性增强 v2.3.0 Release Notes 1.[新增]调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略.立即补偿触发一次等: 2. ...
- Swift3.0语言教程字符串与URL的数据转换与自由转换
Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...
- Swift3.0语言教程字符串与文件的数据转换
Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...
- Swift3.0语言教程字符串转换为数字值
Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...
- Swift3.0语言教程使用URL字符串
Swift3.0语言教程使用URL字符串 Swift3.0语言教程使用URL字符串,和路径一样,URL其实也是字符串,我们可以将这些字符串称为URL字符串.本小节将讲解URL字符串的使用. 1.编码 ...
- Swift3.0语言教程使用路径字符串
Swift3.0语言教程使用路径字符串 Swift3.0语言教程使用路径字符串,路径其实是字符串的一种,我们称为路径字符串.本小节将讲解如何使用路径字符串. 1.组合路径 开发者可以将数组快速的组合成 ...
- Swift3.0语言教程删除字符与处理字符编码
Swift3.0语言教程删除字符与处理字符编码 Swift3.0语言教程删除字符 Swift3.0语言教程删除字符与处理字符编码,在字符串中,如果开发者有不需要使用的字符,就可以将这些字符删除.在NS ...
- Swift3.0语言教程分割字符串与截取字符串
Swift3.0语言教程分割字符串与截取字符串 Swift3.0语言教程分割字符串 如果想要快速的创建一个数组,我们可以将字符串进行分割,分割后的内容将会生成一个数组.在NSString中有两个分割字 ...
随机推荐
- Java开发笔记(一百四十八)通过JDBC查询数据记录
前面介绍了通过JDBC如何管理数据库,当时提到Statement专门提供了executeQuery方法用于查询操作,为什么查询操作这么特殊呢?这是因为其它语句跑完一次就了事了,顶多像insert.up ...
- Go基础编程实践(十)—— 数据库
从数据库中读取数据 在http://sqlitebrowser.org/下载sqlite3可视化工具,在本main.go同目录下创建personal.db数据库,创建表如下: package main ...
- Mysql的常见索引
PRIMARY KEY(主键索引) ALTER TABLE table_name ADD PRIMARY KEY ( col ) 它是一种特殊的唯一索引,不允许有空值: UNIQUE(唯一索引) AL ...
- scratch少儿编程第一季——09、声音模块:吹拉弹唱我也会
各位小伙伴大家好: 上期我们学习了外观模块的指令,学会了制作特效. 本期我们来学习如何给游戏配音. 声音模块的指令不是很多,我们一起来看看吧. 首先第一个就是播放声音,里面默认插入了喵叫声. 我们点击 ...
- Chrome 谷歌开发者工具使用窍门
我们这里介绍主要的几块:Console.Source.Network Console 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的, ...
- bat命令复制文件
del HDT675.applicationdel setup.exedel publish.htmRD /S /Q "Application Files"xcopy /E \\1 ...
- Angular复习笔记5-指令
Angular复习笔记5-指令 在Angular中,指令是一个重要的概念,它作用在特定的DOM元素上,可以扩展这个元素的功能,为元素增加新的行为.本质上,组件可以被理解为一种带有视图的指令.组件继承自 ...
- 2019 央视网java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.央视网等公司offer,岗位是Java后端开发,最终选择去了央视网. 面试了很多家公司,感觉大部分公司考察的点都差 ...
- Mybatis中使用association及collection进行自关联示例(含XML版与注解版)
XML版本: 实体类: @Data @ToString @NoArgsConstructor public class Dept { private Integer id; private Strin ...
- mysql-表关系介绍(应用较多)
目录 表之间的关系(重点) foreign key (外键) 级联操作 (cascade) 两种级联操作 外键的使用 多对一(一对多) 多对多 一对一关系 表之间的关系(重点) foreign key ...