Из документации:
Строка, содержащая строку, оценивает "верный", чтобы указать, что тень, копирующая, включена; или "ложь", чтобы указать, что тень, копирующая, выключена.
И его этот путь с тех пор 1.1. Кто-либо может пролить какой-либо свет?
Я reflector'd метод считывания и метод set в придачу:
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
массив порождает более легкого конструктора копии или что-то?
Недостаток кофеина. Некоторые вещи не предназначены для понимания.
Очевидно, это ошибка первой версии .NET, которая не исправлена, потому что это может нарушить «устаревший» код.
Черт возьми, я только что нашел это:
Спасибо за ваши отзывы о .NET Framework! Мы согласны с тем, что это недосмотр и что тип свойства должен быть логическим. Однако довольно сложно (если не невозможно) внести это изменение в обратно совместимую версию (например, Orcas), потому что мы нарушим код любого клиента, полагаясь на сравнения строк. Так что, к сожалению, мы должны взвесить риск нарушения совместимости и преимущества чистоты API ... и когда дело доходит до наилучшей поддержки нашей клиентской базы, первое обычно выигрывает. Мы будем отслеживать это внутренне, поскольку это хорошая вещь, которую нужно улучшить, и мы продолжим учитывать это в будущих выпусках.
Отсюда здесь