Не, Федор, чуть не о том речь.
Я имею в виду, что записывая
Цитата:void Метод1_СПараметромПоУмолчанию(Общие.Форма.Привязка офп="");
речи о передачи строки вообще не идет.
Я рассматриваю эту запись, именно как семантику инициализации значения по умолчанию значением конкретного типа.
Т.е. это служебная запись, которая говорит интерпретатору: если происходит вызов метода без указания параметра, ты должен создать параметр заданного типа по умолчанию и передать его в параметр.
Т.е. простой вызов
Цитата:Метод1_СПараметромПоУмолчанию()
приведет к инициализации офп значением нового объекта класса Общие.Форма.Привязка, созданного конструктором по умолчанию.
Другое дело, что должен делать интерпретатор при таком вызове
Цитата:Метод1_СПараметромПоУмолчанию("")
или
Метод1_СПараметромПоУмолчанию(0)
Здесь возможны 3 варианта:
1. Можно считать, что переданное пустое значение равносильно неуказанию параметра.
В этом случае должна произойти стандартная инициализация переменной офп новым значением класса
2. Можно пытаться приводить значения, но я не представляю себе, как можно привести строку в объект.
Нет, конечно, можно выполнить поиск конкретного конструктора объекта с указанным параметром (типа строка в данном случае). Но если честно, я не сторонник подобных неявных решений, от них одни проблемы.
Если тебе нужен конкретный офп, созданный из строки - будь любезен, вызови явно нужный конструктор и явно передай его в метод.
3. Можно обламывать сразу на несоответствии типов.
Собственно, мне представляются п. 1 и п. 3. вполне адекватными.