1、访问修饰符是一些关键字用于指定声明的成员或类型的可访问性。可以在自定义类型中使用访问修饰符。
 public:访问不受限制。
 protected:有继承就能访问。
 Internal:访问仅限于当前程序集。
 protected interna:访问当前程序集和有继承的类型。
 private:私有仅限于包含类型。
2、枚举成员默认为public 类默认为private可允许的访问性:都可以访问  接口:默认为public 结构体:默认为private可访问性有public、internal、private。因为结构不能继承所以没有protect
 类及成员默认访问修饰符都是最小的私有的。
3、构造函数与类名相同,不能书写返回值类型。
4、重载:函数名相同、参数不同
5、析构函数:没有修饰符没有参数 整个对象释放时执行
   字段:唯一存储数据的。字段通常为私有的 外部类通过方法属性访问字段。
   只读字段只能在初始化期间或在“构造函数”中赋值。只读字段属于对象的 常量属于类的
   属性里的getset只能一个有修饰符 没有修饰符时默认为public
6、构造函数的用法
私有构造函数: class Program
    {
        static void Main(string[] args)
        {
            A a = A.F(); 
        }
    }
    class A
    {
        private   A()
        {
            int i = 10;
            Console.WriteLine(i);
        }
       public static A  F()
        {
            return new A();
        }  
    }
结果:10
静态构造函数: class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
            A b = new A();
            A c = new A();
        }
    }
    class A
    {
        static A()
        {
            Console.WriteLine("静态");
        }
        public A()
        {
            Console.WriteLine("实例");
        }
    }
结果:静态
      实例
      实例
      实例
说明:静态构造函数实例化时在第一次实例化时运行静态构造函数
7、索引器:索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。
 使用索引器可以用类似于数组的方式为对象建立索引。
 get 访问器返回值。set 访问器分配值。
 this 关键字用于定义索引器。
 value 关键字用于定义由 set 索引器分配的值。
 索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
 索引器可被重载。
 索引器可以有多个形参,例如当访问二维数组时。
例:class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
            a[1] = "aaa";
            Console.WriteLine(a[1]);
        }
    }
    class A
    {
        string[] str=new string[2];
        public string this[int i]
        {
            get
            {
                return str[1];
            }
            set
            {
                str[1] = value;
            }
        }
    }