Re: Конкретный вопрос по С#
От: Ярослав Говорунов Украина http://www.helicontech.com
Дата: 11.05.01 21:34
Оценка: -2
K>Кто пробовал писать в С# функции с дефаултовыми параметрами. В доке сказано, что типа С# как и любой нормальный язык поддерживает необязательные парматеры, пишите типа = <value> и получаете такой параметр, на практике компилятор ругается.
K>Кинуть примером или сами навояте 5 строчек?

Поправьте меня, если я не прав.
Насколько я помню в C#, равно как и в .NET вообще нельзя делать параметры по умолчанию (и это описано в документации). Возможно, с последнего раза, как я туда заглядывал там что-то изменилось?
Обусловлено это спецификой работы .NET. Две причины:
1. Подставить параметр на вызываемой стороне нельзя, т.к. .NET, как и СОМ работает на интерфейсах, а интерфейс — контракт, в котором форма вызовов методов строго определена. Значит параметр нельзя опустить.
2. Подставить параметр на вызывающей стороне нельзя, т.к. связь объектов происходит в runtime, а значит, пропадает контроль за версиями. Как сообщить клиенту, что новая версия объекта в качестве параметра по умолчанию теперь ожидает не 1, а 2?
Вместо этого предлагается использовать перегруженные функции. Т.е.:
func(int a, int b)
{
...
}
func(int a)
{
func(a,2);
}
Если синтаксис C# и позволяет указывать параметры по умолчанию (чего я не видел), то это все равно выливается в перегрузку функций, только скрывая это от наших глаз.
WBR,
Yaroslav Govorunov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.