一些知识老忘,说不上是太零碎,还是老了记性不好…
1、抽象方法必须声明在抽象类中,抽象类中不仅可以有抽象方法,还可以有其他方法。
2、抽象类不能被实例化(不能new)。
3、子类必须重写所有的抽象方法。
4、父类中的抽象方法能不被子类调用(抽象方法只是一个样子没有实际作用)。
5、抽象类中也可以有构造函数。
声明的可访问性 | 含义 |
---|---|
public | 访问不受限制 |
protected | 访问限于包含类或派生自包含类的类型 |
internal | 访问限于当前程序集 |
protected internal | 访问限于当前程序集或派生自包含类的类型 |
private | 访问限于包含类 |
private protected | 访问限于包含类或当前程序集中派生自包含类的类型。 自 C# 7.2 之后可用 |
SearchOption.TopDirectoryOnly //当前目录
SearchOption.AllDirectories //当前目录的所有子目录
///
/// 获取当前目录中指定类型所有文件信息
///
/// 当前目录
/// 扩展名数组
private FileInfo[] GetFilesByDirectory(string directory, IEnumerable<string> extension)
{
var di = new DirectoryInfo(directory);
const string start = "*";
var lst = extension.Select(s => start + s).ToList();
return lst.SelectMany(i => di.GetFiles(i.ToLower(),SearchOption.TopDirectoryOnly)).Distinct().ToArray();
}
bool res = (TypeA).IsAssignableFrom(TypeB);
如果TypeA和TypeB类型一样则返回true;
如果TypeA是TypeB的父类则返回true;
如果TypeB实现了接口TypeA则返回true。