C# 语言规范(连载中)
来源:互联网 发布:ppt制作辅助软件 编辑:程序博客网 时间:2024/05/22 05:22
一.类
类声明定义新的引用类型。一个类可以从另一个类继承,并且可以实现多个接口。
类成员可以包括:常数、字段、方法、属性、事件、索引器、运算符、实例构造函数、析构函数、静态构造函数和嵌套类型声明。每个成员都有关联的可访问性(第 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
...{}
}
显示了这些成员的用法。
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
...{}
}
显示了这些成员的用法。
- C# 语言规范(连载中)
- C#语言规范
- C# 语言规范 (MSDN)
- C# 语言规范
- C# 3.0语言规范
- C#语言规范
- C# 3.0语言规范
- C# 3.0 语言规范
- C# 语言规范
- C# 3.0 语言规范
- C# 3.0 语言规范
- C#语言规范
- C# 语言规范
- C#语言规范
- Visual C#语言规范
- C#3.0 语言规范
- C#语言 规范
- C#语言规范
- 人生不能没有。。。
- php+javascript 静态化简单实例
- PHP,眼花缭乱的PHP
- php 截取中文
- asp+ajax验证表单
- C# 语言规范(连载中)
- 关于ADSL5800ub的管理的一个奇怪现象
- RIA大战——Silverlight vs Flex
- 总体拥有成本:C/C 与Java之间的比较
- 电脑三字经.白话文(摘录)
- 一个菜鸟级项目经理眼里的团队建设
- 套嵌模板,成员模板,模板的使用
- 做个时间管理的高手
- 猪的故事