Значение для назначения параметру paramName для ArgumentException в наборе свойств С#?

Если недопустимое значение передается устройству свойств и выбрано ArgumentException (или возможность его производного от класса), какое значение должно быть присвоено параметру paramName?

value, поскольку он, по-видимому, является фактическим аргументом?

Не было бы более понятно передать имя свойства вместо?

Ответ 1

ArgumentExceptions содержат имя параметра, который недействителен. Для свойства setter фактический параметр имеет именованное значение (как в исходном, так и в сгенерированном коде). Это более последовательно использовать это имя.

Ответ 2

После обширного поиска с Reflector (пытаясь найти объект CLR с записываемым свойством), первый, который я нашел (FileStream.Position), используя "значение" в качестве имени аргумента:

if (value < 0L)
{
    throw new ArgumentOutOfRangeException("value", 
                 Environment.GetResourceString("NeedNonNegNum"));
}

Ответ 3

Да, было бы более понятно передать имя свойства.