访问修饰符:

Internal:仅限于该程序集内(同一个.exe中,即使存在于)

访问修饰符:

Public:不受限制;

Private:只允许本类内部 访问;

Internal:只允许本程序集访问;

Protected:允许本类和该类的子类访问;

Protected internal:允许本类和该类的子类 访问以及本程序集访问;

顶级类型的访问只能是publicinternal

属于

默认的成员可访问性

允许声明的可访问性

enum

Public

Class

Internal

Public,internal

Interface

Public

Struct

Private

Public,internal,private

 

 

 

自定义类型,及自定义成员,枚举中的成员默认为public,类和类中的成员才有访问修饰符;

构造函数有:实例,私有,静态;

静态构造函数:调用发生在所有构造函数之前,属于类,存放于类中,当实例多个该类实例的时候 ,一个实例会调用一个实例构造函数,而静态构造函数只实例化一次;当本类中有静态字段,并且该类有初值的时候,该类会自动生成一个静态函数,并将字段放入静态函数中;

析构函数:自动执行,无需人为调用;作用:释放资源;一个类只能有一个,没有任何访问修饰符,也没有参数;

例如:

class B

{

    static int i;

    static B()

    {

        i = 20;

        Console.WriteLine("2¬?1¨¬");

    }

    public B()

    {

        Console.WriteLine("º¦Ì¤y1¨¬");

}

 

 

  static void Main(string[] args)

        {

       

            B a = new B();

            B a1 = new B();

            B a2 = new B();

            B a3 = new B();

            B a4 = new B();

运行结果:

单类:

  class A

        {

          

           static A a;

           int i;

          private A()

            {

               i=10;

            }

           public static A  Creata()

           {

               if (a == null)

               {

                   a=new A();

                 return  a;

               }

               else

               {

                   return a ;

               }

               

           }

 

 

static void Main(string[] args)

        {

            A s = A.Creata();

            A s1 = A.Creata();

 

字段:类或结构中的对象或值,可以封装字段;通常定义为private

可以将字段声明为readonly;只读字段只能在初始化时候,或构造函数中赋值;如果只读字段前声明为static;则在静态构造函数中赋值;

 

属性:实现对字段的控制;根据对getset的设置,可以将该属性的字段设置为只读或只写,还可以 set设置条件,使用户只能书入满足条件的值;

例:

      static void Main(string[] args)

        {

            People p = new People();

            p.Weight = 500;

            Console.WriteLine(p.Weight );

 

 

class People

    {

      private  double weight=45;

        public double Weight

        {

            get

            {

                return weight;

            }

            set

            {

                if (value > 0 && value < 400)

                {

                    weight = value;

 

                }

            }

        }

    }