C# 语言规范--类

类声明定义新的引用类型。一个类可以从另一个类继承,并且可以实现多个接口。

类成员可以包括:常数、字段、方法、属性、事件、索引器、运算符、实例构造函数、析构函数、静态构造函数和嵌套类型声明。每个成员都有关联的可访问性,它控制能够访问该成员的程序文本区域。有五种可能的可访问性形式。下表概述了这些形式。

示例

using System;
        class MyClass
        {
        public MyClass() {
        Console.WriteLine("Instance constructor");
        }
        public MyClass(int value) {
        MyField = value;
        Console.WriteLine("Instance constructor");
        }
        ~MyClass() {
        Console.WriteLine("Destructor");
        }
        public const int MyConst = 12;
        public int MyField = 34;
        public void MyMethod(){
        Console.WriteLine("MyClass.MyMethod");
        }
        public int MyProperty {
        get {
        return MyField;
        }
        set {
        MyField = value;
        }
        }
        public int this[int index] {
        get {
        return 0;
        }
        set {
        Console.WriteLine("this[{0}] = {1}", index, value);
        }
        }
        public event EventHandler MyEvent;
        public static MyClass operator+(MyClass a, MyClass b) {
        return new MyClass(a.MyField + b.MyField);
        }
        internal class MyNestedClass
        {}
        }

显示了一个类,它包含了具有各种可访问性的成员。示例

class Test
        {
        static void Main() {
        // Instance constructor usage
        MyClass a = new MyClass();
        MyClass b = new MyClass(123);
        // Constant usage
        Console.WriteLine("MyConst = {0}", MyClass.MyConst);
        // Field usage
        a.MyField++;
        Console.WriteLine("a.MyField = {0}", a.MyField);
        // Method usage
        a.MyMethod();
        // Property usage
        a.MyProperty++;
        Console.WriteLine("a.MyProperty = {0}", a.MyProperty);
        // Indexer usage
        a[3] = a[1] = a[2];
        Console.WriteLine("a[3] = {0}", a[3]);
        // Event usage
        a.MyEvent += new EventHandler(MyHandler); // Overloaded operator usage 
MyClass c = a + b; } static void MyHandler(object sender, EventArgs e)
 { Console.WriteLine("Test.MyHandler"); } internal class MyNestedClass {} }
显示了这些成员的用法。
形式 直观含义
public
不限制访问。
protected
访问限于该成员所属的类或从该类派生来的类型。
internal
访问限于此程序。
protected internal
访问限于此程序或从该成员所属的类派生的类型。
private
访问限于该成员所属的类型。
posted @ 2007-03-03 16:37  '.Elvis.'  阅读(273)  评论(0)    收藏  举报