一.成员定义
1.定义字段
public int MyInt; //定义字段
public readonly int MyInt = 17; ///定义只读变量
public static int MyInt; ///定义静态变量
public const int MyInt = 7; 定义常量
2.建立方法
public static string GetString() 定义一个静态方法
{
return "Here is a string.";
}
除了static,还有以下几种修饰方法的关键词:
virtual——方法可以重写。
override——方法编写了一个基类方法(如果方法被重写,就必须使用该关键字)。
extern——方法定义放在其他地方。
3.定义属性
public int MyIntProp
{
get 写访问器
{
return 变量名;
set ///读访问器
{
变量名 = value;
}
}
可以只写其中一个,即只读或者只写。
可以在读访问器中,添加一些功能代码。
if (value >= 0 && value <= 10)
myInt = value;
else ///抛出异常
throw (new ArgumentOutOfRangeException("MyIntProp", value,
"MyIntProp must be assigned a value between 0 and 10."));
同时,访问器也可以添加访问属性,比如protected属性可以让在成员所在类的派生类中继续使用该属性。
protected set
{}
二.隐藏基类的方法
在派生类的同一函数中,添加关键词new
比如: new public void DoSomething()
如何调用重写或者隐藏基类的方法呢?
使用关键字base调用:base.DoSomething();
this关键字
this 关键字最常用的功能是把当前对象实例的引用传递给一个方法,另一个常见用法是限定本地类型的成员。
get
{ return this.somedata; }
嵌套的类型定义:
除了在名称空间中定义类型之外,还可以在其他类中定义这些类。
public class MyClass
{
public class MyNestedClass
{
public int NestedClassField;
}
}
三.接口的实现
(1)接口成员的定义与类成员的定义相似,但有几个重要的区别:
不允许使用访问修饰符(public、private、protected 或internal),所有的接口成员都是公共的。
接口成员不能包含代码体。
接口不能定义字段成员。
接口成员不能用关键字static、virtual、abstract 或sealed 来定义。
类型定义成员是禁止的。
interface IMyBaseInterface //定义方法
{
void DoSomething();
}
interface IMyInterface ///定义属性
{
int MyInt { get; set; }
}
(2)在类中实现接口
public class MyClass : IMyInterface
{
public void DoSomething()
{
}
public void DoSomethingElse()
{
}
}
四.部分类的定义
经常看到public partial class MyClass{},这就是使用部分类定义,把类的定义放在多个文件中。例如,可以把字段、属
性和构造函数放在一个文件中,而把方法放在另一个文件中。
部分类对Windows 应用程序隐藏与窗体布局相关的代码有很大的作用。
五.部分方法定义
部分方法在部分类中定义,但没有方法体,在另一个部分类中包含实现代码。
partial void MyPartialMethod(); 同部分类一样,是将所有部分组合起来实现一个功能的。