MVC系列学习(一)-新语法
本篇内容:
|
1.自动属性 2.隐式类型 3.对象初始化器和集合初始化器 4.匿名类型 5.扩展方法 6.Lambda表达式 |
1.自动属性
使用:
class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
编译后,查看IL语言

CLR 为我们生成了,私有字段(.field)和对应的共有属性语法(get_Name(),set_Name(string))
本质:微软为我们提供了“语法糖”,帮助程序员减少代码
2.隐式类型
使用:
static void Main(string[] args)
{
var name = "张三";
var stu = new Student();
stu.Name = name;
}
编译后,查看源代码

在编译的时候,根据“=”右边的类型,推断出var的类型,所以在初始化时,var类型就已经确定了
3.对象初始化器和集合初始化器
static void Main(string[] args)
{
List<Student> listStu = new List<Student>()
{
new Student() {Age = 1, Name = "张三"},
new Student() {Age = 2, Name = "李四"},
new Student() {Age = 3, Name = "王五"}
};
Dictionary<int, string> dicStu = new Dictionary<int, string>()
{
{1, "张三"},
{2, "李四"}
};
}
编译后,查看源码

本质:编译器为我们实例化了集合,并创建了集合元素对象,再设置给集合
4.匿名类型
a.匿名类
定义:
static void Main(string[] args)
{
var stu = new
{
Id = 1,
Name = "张三",
Age = 18
};
}
编译后,查看IL代码

发现编译器,为我们生成了一个类。这个类有一个 无返回值,带有对应参数的构造函数

b.匿名方法:
定义:
static void Main(string[] args)
{
DGSayHi dgHi = delegate { Console.WriteLine("你好啊"); };
dgHi();
Console.ReadKey();
}
编译后,查看IL语言

在看看这个方法

得出结论:编译器会为每一个匿名方法,创建一个私有的 静态的 方法,再传给委托对象使用
5.扩展方法
定义:静态类,静态方法,this关键字
static class StuExtention
{
public static void SayHi(this Student stuObj)
{
Console.WriteLine(stuObj.Name+",你好啊");
}
}
使用
static void Main(string[] args)
{
Student stu = new Student()
{
Age = 1,
Name = "张三"
};
stu.SayHi();
Console.ReadKey();
}
6.Lambda表达式
使用:
static void Main(string[] args)
{
//匿名方式
DGSayHi dgHi = delegate { Console.WriteLine("你好啊"); };
//Lambda语句
Action dgHi2 = () => { Console.WriteLine("我是Lambda语句,语句可以直接执行"); };
//Lambda表达式
Action dgHi3 = () => Console.WriteLine("我是Lambda表达式");
dgHi();
dgHi2();
dgHi3(); Console.ReadKey();
}
MVC系列学习(一)-新语法的更多相关文章
- MVC系列学习(六)-Razor语法
注:本次代码加了样式,样式如下 <style> div { border: 1px solid red; margin: 10px auto; ...
- 1、ASP.NET MVC入门到精通——新语法
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...
- ASP.NET 4(和ASP.NET MVC 2)中输出HTML编码的新语法<%:%>
今天的文章介绍了ASP.NET 4中引入的一个小而且非常有用的新语法功能 - 这是在代码块中自动对输出进行HTML编码的功能.这有助于保护您的应用程序和站点免受跨站点脚本注入(XSS)和HTML注入攻 ...
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
- MVC入门之.Net语法学习
本节中主要学习.Net框架性语法.开发者可以使用新语法提高编程的效率以及代码的运行效率:其本质都是“语法糖”,由编译器在编译时转成原始语法. u 自动属性 Auto-Implemented Prop ...
- 返璞归真 asp.net mvc (9) - asp.net mvc 3.0 新特性之 View(Razor)
原文:返璞归真 asp.net mvc (9) - asp.net mvc 3.0 新特性之 View(Razor) [索引页][源码下载] 返璞归真 asp.net mvc (9) - asp.ne ...
- 二:MVC之LINQ查询语法
LINQ(Language Integrated Query)语言集成查询是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以操作内存数据的方式,查询数 ...
- [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...
- qt5中信号和槽的新语法
qt5中的连接 有下列几种方式可以连接到信号上 旧语法 qt5将继续支持旧的语法去连接,在QObject对象上定义信号和槽函数,及任何继承QObjec的对象(包含QWidget). connect(s ...
随机推荐
- Unity高像素截图
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/51386272 作者:car ...
- Webstorm如何配置自动补全前缀--autoprefixer
我们在写样式代码时,对不同平台会有不同的兼容性写法,会在代码前加前缀,但是手动加前缀很费时间而且很容易弄错.Webstorm编辑器是有自带补全前缀功能的,那为什么还要写这篇配置博客,因为Webstor ...
- 【Codeforces 375A】Divisible by Seven
[链接] 我是链接,点我呀:) [题意] 让你把一个包含数字1,6,8,9的数字重新组合,使得组合成的数字能被7整除 [题解] 我们先提取出来1,6,8,9各1个 然后把剩余的len-4个数字除了0之 ...
- 51. spring boot属性文件之多环境配置【从零开始学Spring Boot】
原本这个章节是要介绍<log4j多环境不同日志级别的控制的>但是没有这篇文章做基础的话,学习起来还是有点难度的,所以我们先一起了解下spring boot属性文件之多环境配置,当然文章中也 ...
- 【BZOJ1014】火星人prefix(splay,Hash)
题意: . 思路: ; ..,..]of longint; sum,size,fa,a,b,id,mi:..]of longint; n,m,i,x,y,s,k,j,cnt,root:longint; ...
- 欧拉回路输出(DFS,不用回溯!)Watchcow POJ 2230
Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 8109 Accepted: 3551 Special Judge D ...
- RESTFUL 和SOA初探
这篇文章是转载的,restful简单的说就是url明确的指向资源.soa还不好用自己的话解释,但明显不是这样,好吧,我自己的理解就是soa就是访问网站的一个接口.以访问一个blog list为例子, ...
- 《WF in 24 Hours》读书笔记 - Hour 2(1) - 第一个Workflow程序
创建第一个Workflow项目 1. 创建Workflow项目 – 选择Workflow Console Application 2. 添加CodeActivity 3. 打开CodeActivity ...
- 递归删除目录下.svn文件
原文:http://imysqldba.blog.51cto.com/1222376/1104901 ------------------------------------------------- ...
- Spring MVC JSON自己定义类型转换(续)
前面提到了两种转换类型的方法(Spring MVC JSON自己定义类型转换),这里针对Json转换提供一种更简便的方法. 通过配置全局的日期转换来避免使用麻烦的注解. 首先用到了一个简单的日期工具类 ...