1。c#中的访问修饰符:public,protected,internal,private,由他们组成的访问级别有:
1)public:访问不受限制。
2)protected:访问仅限包含类或从包含类派生的类型
3)internal:访问仅限于当前程序集。
4)private:访问仅限于包含类型。
5)protected+internal:访问仅限于当前程序集或从包含类派生的类型。
除了protected+internal,成员或类型只能有一个访问符,结构和类的默认访问权限为internal方法的默认访问权限为:private。enum默认的成员中的可访问性为public,class中成员的可访问性为private,interface中的成员为public,struct中成员为private,命名空间不允许有访问修饰符。
2。构造函数:
每个结构和类都有默认的构造函数,类中加入自定义的构造函数后,默认的会自动消失,结构中默认的构造函数不会消失,因此结构中的构造函数必须加参数。构造函数初始化所有字段,它的方法名与类名相同且无返回值类型,实例化类时new的作用:1。分配内存 2。实例化类中的字段和方法
类中出现静态构造函数的方法为:1。自定义一个静态构造函数,2。定义一个静态的字段
有多个构造函数时先调用静态构造函数,静态构造函数不能有参数和访问修饰符。
3。析构函数
析构函数无访问修饰符,如:~MyClass()析构函数一般不使用,当一段代码占用大量资源时才会用析构函数释放资源。不能在结构中定义析构函数。只能对类使用析构函数。一个类只能有一个析构函数。无法继承或重载析构函数。无法调用析构函数。它们是被自动调用的。析构函数既没有修饰符,也没有参数。
4。索引器
索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。使用索引器:
1。使用索引器可以用类似于数组的方式为对象建立索引。
2。get 访问器返回值。set 访问器分配值。
3。this 关键字用于定义索引器。
4 。value 关键字用于定义由 set 索引器分配的值。
5。 索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
6。 索引器可被重载。
7。 索引器可以有多个形参,例如当访问二维数组时。
 class DayCollection
    {
        string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
     private int GetDay(string testDay)
        {
            int i = 0;
            foreach (string day in days)
            {
                if (day == testDay)
                {
                    return i;
                }
                i++;
            }
            return -1;
        }
      public int this[string day]
        {
            get
            {
                return (GetDay(day));
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            DayCollection week = new DayCollection();
            System.Console.WriteLine(week["Fri"]);
            System.Console.WriteLine(week["Made-up Day"]);
        }
    }
改程序输出结果为:5  -1
 public int this[string day]
        {
            get
            {
                return (GetDay(day));
            }
        }
为索引器,索引器允许以数组的形式访问元素,可以定义×××和非×××两种下标。