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 ...
随机推荐
- Delphi语法
类与对象 从用户角度考虑,用户并不需要了解面向对象编程的知识,就可编写Delphi应用程序.当用户在建立新窗体.添加新组件以及处理事件时,大部分相关代码会由Delphi自动产生.但是,知道语言及其细节 ...
- 【00】angular学习网站
[00] 学习资料: http://angularjs.cn/ 英文API:http://docs.angularjs.cn/api 中文API;http://www.apjs.n ...
- [luoguP2760] 科技庄园(背包DP)
传送门 每次拿完还得回去... 数据中有两个需要注意的地方: 存在桃树上有桃子但是摘 0 次的情况 题目中要求体力不能为0,因此就算到达了重点体力也不能为0,所以实际上允许使用的体力为 a - 1 把 ...
- Java高级应用之泛型与反射
/*************************************************************************************************** ...
- HDU——1134 Game of Connections
Game of Connections Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- Quartz.Net 使用心得(二)
工作中需要做一个简易的Cron字符串生成器,并且要获取生成的Cron后面10次的触发时间来验证. 此问题困扰了我很久时间,CSDN上有一个Java版本的,本人菜鸟,想移植到C#中,语法上怎么也不通过. ...
- 将list转为json字符串
//确保JSP和servlet的编码方式一致 resp.setContentType("text/html;charset=GBK"); List<String> jy ...
- JAVA学习第四十一课 — 泛型的基本应用(一)
泛型是JDK1.5以后出现的安全机制,简化机制,提高安全性 泛型的长处 1.将执行时出现的问题ClassCastException转移到了编译时期 2.避免了强制转换的麻烦 <>在当操作的 ...
- 1. 数组小挪移CyclicRotation Rotate an array to the right by a given number of steps.
数组小挪移: package com.code; import java.util.Arrays; public class Test02_2 { public int[] solution(int[ ...
- 第K顺序统计量的求解
一个n个元素组成的集合中,第K个顺序统计量(Order Statistic)指的是该集合中第K小的元素,我们要讨论的是如何在线性时间(linear time)里找出一个数组的第K个顺序统计量. 一.问 ...