DirectoryInfo.Extension - 为什么存在?

时间:2017-01-21 20:07:27

标签: .net file-extension

我刚注意到DirectoryInfo类具有Extension属性,继承自FileSystemInfo。我很困惑,为什么这是基类的一部分,而不是仅在FileInfo类中声明和实现。也就是说,由于目录没有扩展,这似乎是一个奇怪的设计决定。

此外,我只是使用DirectoryInfo实例,并注意到Extension属性似乎相当随意。它似乎是文件夹的原始名称(不是当前名称),转换为小写。例如,假设我有一个最初名为 MyCoolFolder 的文件夹。后来,我将名称更改为 MyGoodFolder DirectoryInfo.Extension属性可能会基于我所看到的内容,请阅读 .mycoolfolder 。为什么?在Extension上使用DirectoryInfo属性有什么用处,以及将原始名称设为小写有什么用呢?

1 个答案:

答案 0 :(得分:0)

这只是这个对象层次结构的设计缺陷。

如果您认为这很糟糕(只留下相关代码):

public abstract class Array : IList
{
  int IList.Add(object value)
  {
    throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
  }
}

只要接受.net框架设计师也会犯错误,并且广泛使用的API中的错误即使不是不可能修复也是非常困难的,因为向后兼容性通常具有更高的优先级。