字段,属性,方法,委托,事件.索引器,构造函数,析构函数.访问修饰符
字段
字段是被视为类的一部分的对象的实例,通常用于保存类数据。例如,日历类可能具有一个包含当前日期的字段。
可以选择将字段声明为 static。这使得调用方在任何时候都能使用字段,即使类没有任何实例。
可以将字段声明为 readonly。只读字段只能在初始化期间或在构造函数中赋值。
static readonly 字段非常类似于常数,只不过 C# 编译器不能在编译时访问静态只读字段的值,而只能在运行时访问。
属性
属性是类中可以像类中的字段一样访问的方法。属性可以为类字段提供保护,以避免字段在对象不知道的情况下被更改。
属性使类能够以一种公开的方法获取和设置值,同时隐藏实现或验证代码。
get 属性访问器用于返回属性值,而 set 访问器用于分配新值。这些访问器可以有不同的访问级别。
value 关键字用于定义由 set 索引器分配的值。
不实现 set 方法的属性是只读的。
对于不需要任何自定义访问器代码的简单属性,可考虑选择使用自动实现的属性。方法
方法定义类可以执行的操作。方法可以接受提供输入数据的参数,并且可以通过参数返回输出数据。方法还可以不使用参数而直接返回值。
委托
委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。
事件
事件向其他对象提供有关发生的事情(如单击按钮或成功完成某个方法)的通知。事件是使用委托定义和触发的。
索引器
使用索引器可以用类似于数组的方式为对象建立索引。
构造函数
构造函数是在第一次创建对象时调用的方法。它们通常用于初始化对象的数据。
析构函数
析构函数是当对象即将从内存中移除时由运行库执行引擎调用的方法。它们通常用来确保任何必须释放的资源都得到适当的处理。
访问修饰符
public
访问不受限制,可以类内和任何类外的代码中访问
protected
可访问域限定于类内或从该类派生的类内
internal
可访问域限定于类所在的程序内
protected internal
protected或者internal,即可访问域限定于类所在的程序或那些由它所属的类派生的类内
private
可访问域限定于它所属的类内
Code
1namespace DemoLib.Demo1
2{
3 delShowMessage 委托#region delShowMessage 委托
4 /**//// <summary>
5 /// 委托
6 /// </summary>
7 /// <param name="message"></param>
8 public delegate void delShowMessage(string message);
9 #endregion
10
11 Person 人类(类)#region Person 人类(类)
12 /**//// <summary>
13 /// 人类(类)
14 /// </summary>
15 public class Person
16 {
17 name (字段)#region name (字段)
18 /**//// <summary>
19 /// 名称
20 /// </summary>
21 private string name;
22
23 private float[] temps = new float[10] { 56.2F, 56.7F, 56.5F, 56.9F, 58.8F,
24 61.3F, 65.9F, 62.1F, 59.2F, 57.5F };
25 #endregion
26
27 Length (属性)#region Length (属性)
28 /**//// <summary>
29 ///
30 /// </summary>
31 public int Length
32 {
33 get { return temps.Length; }
34 }
35 #endregion
36
37 this[int index] 索引器#region this[int index] 索引器
38 /**//// <summary>
39 /// 索引器
40 /// </summary>
41 /// <param name="index"></param>
42 /// <returns></returns>
43 public float this[int index]
44 {
45 get
46 {
47 return temps[index];
48 }
49
50 set
51 {
52 temps[index] = value;
53 }
54 }
55 #endregion
56
57 Name 名字(属性)#region Name 名字(属性)
58 /**//// <summary>
59 ///
60 /// </summary>
61 public string Name
62 {
63 get
64 {
65 return name;
66 }
67 set
68 {
69 name = value;
70 }
71 }
72 #endregion
73
74 Person 构造函数#region Person 构造函数
75 /**//// <summary>
76 /// 无参构造函数
77 /// </summary>
78 public Person()
79 {
80 name = "unknown";
81 }
82
83 /**//// <summary>
84 /// 有参构造函数
85 /// </summary>
86 /// <param name="name">名称</param>
87 public Person(string name)
88 {
89 this.name = name;
90 }
91 #endregion
92
93 ~Person 析构函数#region ~Person 析构函数
94 /**//// <summary>
95 /// 析构函数
96 /// </summary>
97 ~Person()
98 {
99 //析构函数用于析构类的实例。
100 //该析构函数隐式地对对象的基类调用 Finalize。
101 //不应使用空析构函数。如果类包含析构函数,Finalize 队列中则会创建一个项。
102 //调用析构函数时,将调用垃圾回收器来处理该队列。如果析构函数为空,只会导致不必要的性能损失。
103 //所以当前的代码最好去掉析构函数。
104 }
105 #endregion
106
107 MessageEvent 事件#region MessageEvent 事件
108 /**//// <summary>
109 ///
110 /// </summary>
111 public event delShowMessage MessageEvent;
112 #endregion
113
114 MyIntroduce 自我介绍 (方法)#region MyIntroduce 自我介绍 (方法)
115 /**//// <summary>
116 ///
117 /// </summary>
118 /// <returns></returns>
119 public string MyIntroduce()
120 {
121 return "我的名字叫:" + this.name;
122 }
123 #endregion
124
125 TalkMessage 说些消息 (方法)#region TalkMessage 说些消息 (方法)
126 /**//// <summary>
127 ///
128 /// </summary>
129 /// <param name="message">消息内容</param>
130 /// <returns></returns>
131 public string TalkMessage(string message)
132 {
133 return "消息内容是:" + message;
134 }
135 #endregion
136
137 ShowMessage 显示消息 (静态方法)#region ShowMessage 显示消息 (静态方法)
138 /**//// <summary>
139 ///
140 /// </summary>
141 /// <param name="message">消息内容</param>
142 /// <returns></returns>
143 public static string ShowMessage(string message)
144 {
145 return "消息内容是:" + message;
146 }
147 #endregion
148
149 }
150 #endregion
151}