C# 语言规范(连载中)

一.类 

类声明定义新的引用类型。一个类可以从另一个类继承,并且可以实现多个接口。
类成员可以包括:常数、字段、方法、属性、事件、索引器、运算符、实例构造函数、析构函数、静态构造函数和嵌套类型声明。每个成员都有关联的可访问性(第 3.5 节),它控制能够访问该成员的程序文本区域。有五种可能的可访问性形式。下表概述了这些形式。

形式

直观含义

public

不限制访问。

protected

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

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[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
    
{}
}

显示了这些成员的用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值