ここで少し問題があります。しかし、この質問はどのメソッドのオーバーロードにも当てはまります。
私は次のようなメソッド宣言をしました:(魔女は要件に正確に一致しませんでした)
Public Shared Sub SetGridFormat(ByRef grid As DataGrid, ByVal width As Integer, ByVal height As Integer, ByVal paging As Boolean)
だから私はこれが必要な場合のためにオーバーロードを書くことを心に留めていました:
Public Shared Sub SetGridFormat(ByRef grid As DataGrid, ByVal width As Unit, ByVal height As Unit, ByVal paging As Boolean)
2つの宣言は同じですが、高さと幅のタイプが異なります。「アクセス可能な「SetGridFormat」がこれらの引数に最も固有であるため、オーバーロードの解決に失敗しました」というエラーが発生しました。
問題は、ビルダーが使用する定義方法と構文を決定できない場合に、vb.netで「デフォルト」の定義方法を許可するかどうかです。
助けるためのタンク。
編集:2つの呼び出しは次のようになります:
SetGridFormat(dg, New Unit(100, UnitType.Percentage), New Unit(100, UnitType.Percentage), True)
SetGridFormat(dg, 100, 100,True)
回答から、何かを指定する必要があります。ほとんどの場合、ほとんどの回答が機能しますが、2つの値をゼロに設定できる(特定のサイズが不要な)問題のあるケースを除外します。
SetGridFormat(dg, Nothing, Nothing, True)
この場合、コンパイラの観点では、両方のメソッド宣言は同じです。
これがおそらく問題の根本的な原因です。そのような場合に何も存在しなければ、私は非常に失望するでしょう。:(
私の質問は、この場合、コンパイラに特定のメソッド呼び出しを使用させる方法はありますか?