您的位置:首页 > 编程语言 > C#

C#笔记-基础知识

2016-09-29 14:11 260 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: