对于is的使用,我就据下面我写的例子讲解吧:
string path = @"E:\";
DirectoryInfo dir = new DirectoryInfo(path);
//获取特定目录下的子目录集合
DirectoryInfo[] directories = dir.GetDirectories();
//获取特定目录下的文件集合
FileInfo[] files = dir.GetFiles();
foreach (DirectoryInfo di in directories)
{
Console.WriteLine(di);
}
//一起取得目录集合和文件集合
System.IO.FileSystemInfo[] fsi = dir.GetFileSystemInfos();
for (int i = 0; i < fsi.Length; i++)
{
//用多态区分类型
System.IO.FileSystemInfo si = fsi;
//is as 的使用
if (si is DirectoryInfo)
{
Console.Write("{0} ", "目录");
}
else
{
Console.Write("{0} ", "文件");
}
Console.WriteLine(fsi.Name);
System.IO.FileSystemInfo[]使用这个类时,它里面有目录文件和文本文件,那么就可以使用多态进行判断并输出:si is DirectoryInfo判断是否为目录文件
is关键字用于检查对象是否与给定类型兼容,如果被检查对象能够强制转换成给定类型并不发生异常,那么表示它们类型兼容。如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则is表达式的计算结果将是 true;否则,发生异常时is表达式将返回false,就这么简单的区别。希望对你有用。 |