C#笔记-基础知识

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 

 

posted on 2016-09-29 14:11  blackCatx  阅读(156)  评论(0编辑  收藏  举报

导航