我刚注意到DirectoryInfo
类具有Extension
属性,继承自FileSystemInfo
。我很困惑,为什么这是基类的一部分,而不是仅在FileInfo
类中声明和实现。也就是说,由于目录没有扩展,这似乎是一个奇怪的设计决定。
此外,我只是使用DirectoryInfo
实例,并注意到Extension
属性似乎相当随意。它似乎是文件夹的原始名称(不是当前名称),转换为小写。例如,假设我有一个最初名为 MyCoolFolder 的文件夹。后来,我将名称更改为 MyGoodFolder 。 DirectoryInfo.Extension
属性可能会基于我所看到的内容,请阅读 .mycoolfolder 。为什么?在Extension
上使用DirectoryInfo
属性有什么用处,以及将原始名称设为小写有什么用呢?
答案 0 :(得分:0)
这只是这个对象层次结构的设计缺陷。
如果您认为这很糟糕(只留下相关代码):
public abstract class Array : IList
{
int IList.Add(object value)
{
throw new NotSupportedException(Environment.GetResourceString("NotSupported_FixedSizeCollection"));
}
}
只要接受.net框架设计师也会犯错误,并且广泛使用的API中的错误即使不是不可能修复也是非常困难的,因为向后兼容性通常具有更高的优先级。