14

文档中:

包含字符串值“true”的字符串,表示已打开卷影复制;或“false”表示已关闭卷影复制。

从 1.1 开始就是这样。任何人都可以解释一下吗?

我对 getter 和 setter 进行了反思:

public string ShadowCopyFiles
{
    get
    {
        return this.Value[8];
    }
    set
    {
        if ((value != null) && (string.Compare(value, "true", StringComparison.OrdinalIgnoreCase) == 0))
        {
            this.Value[8] = value;
        }
        else
        {
            this.Value[8] = null;
        }
    }
}

//The referenced Value property...

internal string[] Value
{
    get
    {
        if (this._Entries == null)
        {
            this._Entries = new string[0x10];
        }
        return this._Entries;
    }
}

private string[] _Entries; 

所以也许Value数组会产生一个更简单的复制构造函数或什么?

4

1 回答 1

13

缺乏咖啡因。有些事情是不应该被理解的。

这显然似乎是 .NET 第一个版本的错误,未修复,因为这可能会破坏“遗留”代码。

天哪,我刚刚发现了这个:

感谢您对 .NET Framework 的反馈!我们同意这是一个疏忽,并且属性类型应该是布尔值。但是,在向后兼容的版本(例如 Orcas)中进行此更改是相当困难的(如果不是不可能的话),因为我们会破坏任何依赖字符串比较的客户的代码。所以不幸的是,我们必须权衡破坏兼容性的风险与 API 清洁度的好处……当谈到最好地支持我们的客户群时,前者通常会获胜。我们将在内部跟踪这一点,作为改进的好东西,我们将在未来的版本中继续考虑它。

这里

于 2009-12-07T19:47:27.937 回答