EDIT FINALMożliwe przykre skutki uboczne oszukiwanie .Net mieć opcjonalne parametry ref dla COM
ja bardziej dokładnie przetestowany „cecha” i napisany cały artykuł o tym: Optional passed by reference parameters with C# for VBA COM APIs
Każda opinia jest Witamy.
jakiegoś powodu w C# sposób nie może mieć opcjonalnieprzekazywane przez odniesienie (oznaczonego ref
lub out
) parametrów.
Ale w innych infrastruktur jak VBA, VB6 lub COM jest to możliwe.
Kiedy pomostowych C# z użyciem VBA COM Znalazłem drogę do przezwyciężenia ograniczeń C# przez oznaczenie parametrów ref
jak [Optional]
który AFAIK co kompilator C# generuje na zakończenie swojej kanalizacji.
void SomeDotNetCSMethod([Optional] ref someParameter)
To wydaje się działać jak czar: Dzwoniąc z VBA do C# mogę pominąć parametry ref
i oczywiście mogę czytać i zmieniać je od/C# .NET stronie.
Ale jak nie znalazłem żadnego zapisu na ten temat, chciałbym mieć pewność, że nie ma żadnych złych efektów ubocznych w tej "sztuczce".
Czy znasz jakieś? Czy możesz sobie wyobrazić?
EDIT
Z atrybutem [DefaultParameterValue]
może Znalazłem sposób na VBA zobaczyć domyślne wartości dla parametru, ale tylko dla niektórych typów.
zrobię więcej testów, aby potwierdzić ten działa zgodnie z oczekiwaniami ...
Co jest nie tak z przeciążeniem funkcji? – Comintern
@Comintern Dziękuję za odpowiedź, ale COM nie obsługuje przeciążania. Jeśli przeładujesz C# skończysz z 'SomeDotNetCSMethod_1',' SomeDotNetCSMethod_2' ... – Pragmateek