1.格式化输出
2. 标准数字格式说明符
C,c 货币
D,d 十进制数 Console.WriteLine("{0:D4}",12) ----- 0012
F,f 符点数
G,g 常规
X,x 十六进制
N,n 带,间隔 ----12,345,678.54
P,p 带%号
R,r Parse方法相关,确保值不变
E,e 科学记数
3.预定义类型都为小写
4. var 的使用 条件
只能用于本地变量, 不能和于字段
只能在变量声明中包含初始化时使用
推断出变量的类型后固定不能更改
var total = 15;
var mec = new MyClass();
5. 引用参数
声明和调用都要使用ref关键字
void MyMethod( ref int val){
....
}
int n= 5;
MyMethod(ref n);
6.输出参数
void MyMethod( out int val ) {...} int y; MyMethod( out y);
7.参数数组
*0 或多个实参
*在一个参数列表中只能有一个参数数组。
*必须是列表中的最后一个。
*必须具有相同的类型。
*params 修饰符 在声明中需要, 在调用中不允许有
void ListInts( params int[] inVals ){...}
ListInts( 1, 2, 3 ); int[] intArray = {1, 2,3); ListInts( intArray );
8. 可选参数
.
所有必填参数必须在可选参数声明之前声明,如果有params参数,必须在所有可选参数之后声明
9. 属性
*属性是命名的类成员, 有类型, 可以被赋值和读取,
*是一个函数成员
*不为数据存储分配内存
*执行代码
*属性是指定的一组两个匹配的, 称为访问器的方法
#属性和它人的后备字段的两种命名约定:
名称内容相同, 字段使用Camel (firstField),属性合用Pascal(FirstField)
字段使用_开始+Camel(_firstField), 属性使用Pascal(FirstField)
10.自动实现属性
因为属性经常被关联到后备字段,允许只声明属性而不声明后备字段。编译器会为你创建隐藏的后备字段,并且自动挂接到get ,set 访问器上。
*不声明后备字段,编译器根据属性的类型分配存储。
*不能提借访问器的方法体,他们必须被简单地声明为分号。get担当简单的内存读, set担当简单的写
*除非通过访问器,否则不能访问后备字段。因为不能用其他的方法访问它,所以实现只读和只写属性没有意义,必须同时提供set ,get
class C1
{
public int MyValue
{
set;get;
}
}
11.静态构造函数
static构造函数用于初始化类级别的项。通常用于初始化类的静态字段。
*类只能有一个静态构造函数, 而且不能带参数, 不能有访问修饰符
*同静态方法, 不能访问所在类的实例成员, 也不能使用this访问器。
*不能从程序中显式调用静态构造函数,系统会自动调用它们,在 类的任何实例被创建之前, 在类的任何静态成员被引用之前。
class AConstructor { static AConstructor() { //初始化静态成员 } }
12. 对像初始化语句
new ClassName { k = v, k2 = v2, .... } new ClassName(argList) { k = v, k2 = v2, .... }
13.索引器
索引器是一组get, set 访问器,与属性类似,为多个数据成员提供访问器,索引器本身可以是任何类型,不仅是数值类型。
和属性一样。索引器可以只有一个访问器, 也可以两个都有。总是实例成员,不能声明为static。不必须关联到某字段或属性。
索引器没有自定义名称。名称位置是关键字this,参数列表在[方括号]中间,到少声明一个参数。
可以重载, 可以有任意多个索引器,必须参数列表不同,
----就是提供了一种像数组、map 访问例数据成员的格式。语法糖
class Employee { public string stra; public string strb; public string strc; public string this [int index] { set { switch (index) { case 0: stra = value; break; case 1: strb = value; break; case 2: strc = value; break; default: throw new ArgumentOutOfRangeException ("index"); break; } } get { switch (index) { case 0: return stra; case 1: return strb; case 2: return strc; default: return "" ; } } } }
14.访问器修饰符
class D { public string Name { get; private set;} }
//属性外部可读, 不可读。 内部可写。
仅当成员同时有get, set 访问器时才能有修饰符。且只能有一个有修饰符, 必须比成员的访问级别更严格。
15. 分部类
类的声明可以分隔成几个分部类的声明, 可以不同文件, 标为 partial class
分部方法是声明在分部类中不同部分的方法。返回类型必须是void,签名不能包括访问修饰符,隐式私有。参数列表不能包含out , 包含partial