您的位置:首页 > 其它

2016-03-03 23:15 357 查看
1.默认构造函数

不接受参数,除了把对象分配到内存中,默认构造函数确保所有字段数据都设置为正确的默认值default(Type)。

一旦定义了自定义的构造函数,默认构造函数就自动从类中移除,并且不再有效。

2.this关键字进行串联构造函数调用

class TestA

        {

            private int x;

            private int y;

            private int z;

            public TestA()

            { }

            public TestA(int x)

                : this(x, 0, 0)

            { }

            public TestA(int x, int y, int z)

            {

                this.x = x;

                this.y = y;

                this.z = z;

            }
        }

3.可选参数构造函数

class TestA

        {

            private int x;

            private int y;

            private int z;

            public TestA(int x =0, int y=0, int z=0)

            {

                this.x = x;

                this.y = y;

                this.z = z;

            }

        }

调用:

...

TestA a = new TestA(y:2);

4.static关键字

static 静态数据:只分配一次,并且在所有的对象之间共享。

静态方法:静态方法中不能访问非静态成员(属性、方法等)

5.静态构造函数

一个类只可以有一个静态构造函数

静态构造函数不允许访问修饰符,并且不能接受任何参数

无论创建了多少对象,静态构造函数只执行一次

运行库创建实例或者调用者首次访问静态成员之前,运行库会调用静态构造函数

静态构造函数的执行先于任何实例级别的构造函数

6.嵌套类型

类的修饰符只能有:public 和internal

类型成员或者嵌套类型:private 、protected、protected internal

7.属性

class MyClass

        {

            private int age;

            public int Age

            {

                get { return age; }

                set { age = value; }

            }

            //只读属性

            private string name;

            public string Name 

            {

                get { return name; }

            }

            //只写属性

            private string son;

            public string Son

            {

                set { son = value; }

            }

            //静态属性

            private static int count;

            public static int Count

            {

                get { return count; }

                set { count = value; }

            }

            //自动属性,不允许构建只读或者只写的自动属性

            public int Id { get; set; }

            

        }

8.对象初始化语法

大括号内部用逗号分隔的指定值列表,在后台调用的是默认的构造函数,然后在给指定的属性赋值。

Point p = new Point { X = 30, Y = 40 };

//

 Rect rect = new Rect

        {

            Leftp = new Point { X = 10, Y = 10 },

            Rightp = new Point { X = 100, Y = 100 }

        };

9.常量

定义常量是必须指定初始值,常量字段为隐式静态的(访问MyClass.desc),常量的值必须在编译时提供。

 class MyClass

        {

            public const string desc = "hello,CSharp!";

        }

10.只读字段

和常量相似,只读字段在赋值后不能改变,和常量不同的是:赋给只读字段的值可以在运行时决定,一次在构造函数作用域中进行赋值是合法的(其他地方不行)。

只读字段不是隐式静态的,需要通过实例进行访问。

class MyClass

        {

            public readonly double PI;

            public MyClass(double pi)

            {

                PI = pi;

            }

        }

11.静态只读字段

 class MyClass

        {

            public static readonly double PI = 3.14;

        }

如果直到运行时候才知道静态只读字段的值,必须使用静态构造函数

class MyClass

        {

            public static readonly double PI;

            static MyClass()

            {

                PI = ReadFromConfig();

            }

        }

12.分部类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: