《ASP.NET MVC企业实战》(二) MVC开发前奏
来源:互联网 发布:c语言编程技巧 编辑:程序博客网 时间:2024/06/07 22:37
在上一篇“《ASP.NET MVC企业级实战》(一)MVC开发前奏”中记录了作者介绍的一些比较实用的VS使用方法以及C#2.0中添加的新特性。本篇继续大概了解之后版本的一些新特性。
一、C#3.0/3.5新特性
a)自动属性
属性的目的是为了封装字段和控制对字段的读写权限,使用自动属性可以用类似public int ID{get;set;}这样的方式简化属性的实现,自动生成对应的字段。这种写法增加了编译器的工作量,但不会对运行效率产生影响。
b)隐式类型推断var
使用var声明一个对象时,编译器会自动根据赋值语句推断这个变量的类型。var还可用于匿名类的声明。用var声明变量时有一些限制:
被声明的变量必须是一个局部变量,而不是静态或实例字段;
变量必须在声明的同时被初始化;
初始化的对象不能是一个匿名函数;
变量声明后类型不能更改;
赋值的数据类型必须是可以在编译时确定的类型。
c)对象集合初始化器
分为对象初始化、集合初始化两种:
对象初始化时可以这样写:User user=new User{Id=1,Name=””};
集合初始化时的写法可以为:User users=new List<Users>{new User{Id=1,Name=”1”},newUser{Id=2,Name=”2”}};
d)匿名类
使用匿名类可以将一组只读属性封装到对象中,匿名对象可以用var来声明。例如var user=new User{Id=1,Name=””};这种写法方便灵活,但要避免滥用,否则会造成代码重复、降低可维护性等问题。
e)扩展方法
基本使用方法为:
这里被扩展的类型为string,则string前需要加this,而且所在的类必须为静态的。编译器在碰到str.WriteSelf这样的写法时,首先会寻找名称为WriteSelf的实例方法,没有找到后就认为是一个扩展方法,然后就在当前相关的命名空间中寻找匹配的扩展方法。
扩展方法至少需要有一个参数,而且第一个参数不能有任何其他修饰符(ref/out),也不能为指针类型编写扩展方法。
f)系统内置委托
系统内置委托如Func、Action、Predicate、Comparison等,可以被方便得使用,而不必在使用前自己声明签名。
Action有16个重载,参数个数从1-16。
Func有17个重载,代表一类有若干(0~16个)输入参数,1个输出的签名。
Predicate委托如下,用来判断输入参数是否符合某种条件,条件要自己定,返回值就是bool了。
Comparison委托用来比较两个参数。
学习资料:ASP.NET MVC 企业级实战 by 邹琼俊
- 《ASP.NET MVC企业实战》(二) MVC开发前奏
- 《ASP.NET MVC企业实战》(一) MVC开发前奏
- 《ASP.NET MVC企业实战》(三)MVC开发前奏
- Asp.Net MVC 3.0【MVC实战项目の二】
- ASP.NET MVC 2开发实战
- 二. ASP NET MVC
- ASP.NET MVC 实战演练
- ASP.NET MVC架构与实战系列之二:理解MVC路由配置
- ASP.NET MVC架构与实战系列之二:理解MVC路由配置
- ASP.NET MVC 路由(二)
- ASP.NET MVC 视图(二)
- Asp.Net Mvc + ComBoost.Mvc快速开发
- 实战asp.net MVC+ADO.NET EntityFramework
- ASP.NET MVC开发实例
- ASP.NET MVC架构开发
- ASP.NET MVC开发笔记
- ASP.NET MVC框架开发系列课程二
- c# asp.net mvc 开发的正方教务助手(二)
- 第五天
- 动态加载资源简析和实践
- Web项目的WEB-INF目录使用说明
- 四:分支管理
- JavaScript基础知识
- 《ASP.NET MVC企业实战》(二) MVC开发前奏
- Luogu P2240 数的计数数据加强版
- linux命令
- css_day05_修改input中placeholder的默认属性
- CSS 的 弹性布局
- 前端面试题
- TCP三次握手和四次挥手
- 求大区间内素数的个数(区间筛法)
- TCP连接的建立和断开