第2章 基于三层架构搭建MVC系统

第2章 基于三层架构搭建MVC系统

clip_image002[4]

2.1 可选参数和命名参数

2.1.1 可选参数

语法:

[修饰符] 返回类型 方法名(必选参数1…必选参数n,可选参数1…可选参数n)

Static void BookList(string category,string order=”BookName”)…

2.1.2 命名参数

语法:

方法名(参数1名:参数1值…参数n名:参数n值)

2.2 .NET的特殊类型

2.2.1 隐式类型

>var I = 0;

必须在声明变量的同时进行赋值,使用var声明变量,在编译的时候根据所赋值的类型来确定变量类型。

2.2.2 匿名类型

语法:

new{属性1名:属性1值,…属性n名:属性n名}

可以将一组只读属性封装到单个对象中,而不需要定义一个类型。类型名由编译器产生,该类型不能在源代码级使用。

示例:

>var stu = new{Name=”张三”,Age=18,Gender=”男”}

2.2.3 dynamic类型

示例:

>dynamic person1 = new{Name=”张三”,Age=18}

>person1.Introduce();//不会报错,如果不存在此方法,运行时报错

在.NET4.0中,引入了新的关键字dynamic,用来定义动态类型。动态类型是相对于静态类型而言的,当调用动态类型的成员时,并不做编译时检查,而是在运行时查找,如果存在正确,否则抛出异常。

2.2.4 可空类型

语法:

>System.Nullable<类型> 变量名

类型? 变量名

可空类型属性:

(1)HasValue:bool,是否是空置

(2)Value:值,如果HasValue为false调用抛出InvalidOperaionException异常。

??运算符:

>int? num =null;

>int num2=num??0;

“??”运算符首先判断左操作数是否为null,如果为null则返回“??”右面的默认值,否则返回左操作数。

2.3特性

C#的特性主要有以下特点。

>为目标元素(可以是程序集、类、属性、方法等)加入附加信息,类似于注释。

>特性本质上也是一个类,直接或间接的继承自Attribute类。

>特性命名都以Attribute结尾,但是在使用它时可以省略,.NET会自动找到对应的特性类。

在.NET框架中,实现了很多默认的特性,可以在程序集、类、方法的头部使用特性,使用语法如下。

[特性名]或[特性名(参数值)]

其中,特性名必须放置在[]之间,()之间的参数由特性类的构造函数确定。

常用特性:[Obsolete],[Serializable]

2.3 搭建分区项目

clip_image004[4]

clip_image006[4]

clip_image008[4]

clip_image010[4]

posted @ 2018-04-17 14:50  Bug的梦魇  阅读(330)  评论(0编辑  收藏  举报