partial关键字
partial 示某个类由多个分部类组成,而这些分部类分布于多个独立文件中。
//Form1.cs
namespace DAQ
{
public partial class Form1 : Form
{
...
}
}
//Form1.Designer.cs
namespace DAQ
{
partial class Form1
{
...
}
}
abstract(声明抽象类)
abstract 声明抽象类抽象方法。所谓的抽象方法,就是不含主体(不提供实现方法),必须由继承者重写。
因此,抽象类不可实例化,只能通过继承被子类重写。一般需要声明抽象类有两种情况:
1.一个类中有抽象方法,那么这个类就是抽象类了。2.这个类不想让人直接实例化,而只让人继承。
namespace INIFILE
{
///抽象类
public abstract class CustomIniFile
{
...
//抽象方法
public abstract string ReadString(string Section, string Ident, string Default);
...
}
///继承子类
public class IniFile : CustomIniFile
{
public override string ReadString(string Section, string Ident, string Default)
{
...
return Encoding.Default.GetString(vBuffer, 0, (int)vCount);
}
}
}
virtual的方法
父类中声明的virtual方法,如果子类没有重写这个virtual方法,它会调用父类的virtual方法。
如果子类重写了父类的方法,那么父类的virtual方法不会运行,而是运行子类重写的方法。
当然子类即使重写了父类的方法,也可以用base.来调用父类的方法。
namespace INIFILE
{
///抽象类
public abstract class CustomIniFile
{
//定义virtual方法
public virtual bool SectionExists(string Section)
{
...
return vStrings.Contains(Section);
}
}
///继承子类
public class IniFile : CustomIniFile
{
public override string ReadString(string Section, string Ident, string Default)
{
...
return Encoding.Default.GetString(vBuffer, 0, (int)vCount);
}
}
}