当前位置:首页 > 网络编程 > 软件语言 > .NET > C# 语言规范--1.7 类

C# 语言规范--1.7 类

点击次数:51 次 发布日期:2008-11-06 08:04:30 作者:源代码网
源代码网推荐
广告载入中

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

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

形式 直观含义
public  
不限制访问。
protected 

软件开发网 www.mscto.com

访问限于该成员所属的类或从该类派生来的类型。
internal 

访问限于此程序。
protected internal  
访问限于此程序或从该成员所属的类派生的类型。
private  
访问限于该成员所属的类型。

示例

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 = a= a[2];

      Console.WriteLine("a = {0}", a);

      // 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

   {}

} 
软件开发网 www.mscto.com

显示了这些成员的用法。


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华