|
皆様、回答いただきありがとうございました。しばらくネット接続できない期間があり、返事が遅くなりました。
現在コンバートを行っている VB.Net で多用されている "Optional ByRef" は、例えばこんな感じです。(実際のコードではなく、サンプルとして作成した「配列の最大値を求めるプロシージャ」の例)
Sub array_max(ByVal n As Long, ByVal array() As Double, ByRef max As Double, Optional ByRef max_no As Long)
n が配列の要素数、array が実数の配列で、max が配列の最大値, max_no が最大値の番号を返します。
配列の最大値のみを求めるときの呼出し:
Call array_max(n, array, max)
配列の最大値と、その最大値が配列の何番目にあるかを求めるときの呼出し:
Call array_max(n, array, max, max_no)
このように目的によって呼び出し方を変えるプロシージャが多用されているため、このまま C# にコンバートすると不具合が発生することになります。
回答を拝見していると、やはり C# では文法上省略できないようですね。今回は引数を省略しないように書き換える(上記の例だと、最大値の番号が必要ない場合でも引数 max_no を渡す)ことで対処したいと考えています。回答いただき、ありがとうございました。
|