5

VS 2010 IDE が、ユーザー定義の列挙型を受け取るメソッド パラメーターを介して Nothing を渡そうとしているのに吠えていないことに、本当に悩まされています。代わりに、メソッドに 0 を渡しています。c# はこれを許可しません。option strictIDEがこれらのタイプの暗黙的な変換を許可しないように追加できるモジュールレベルの修飾子はありますか?

4

2 に答える 2

8

悲しいことに、いいえ。


ただし、スキップ中に列挙メンバーに値を割り当てることができます0(または、名前付きのプレースホルダーなどを使用しますNone)。少なくとも実行時にこのケースを処理します。

Sub Main
    MyMethod(Nothing) ' throws Exception
End Sub

Sub MyMethod(e as MyEnum)
    If e = 0 Then
        Throw New Exception
    End If
End Sub

Enum MyEnum
    a=1
    b=2
    c=3
End Enum
于 2012-08-01T11:36:10.157 に答える
3

C# 言語のデフォルトに相当するものはありません。いいえ。

あなたのプログラミングスタイルを再考しください。基本的にはジェネリック コードでのみ、 C# でデフォルトを使用するのと同じ場所です。VB.NET は、C# のように変数の初期化を要求しません。参照型の変数は、自動的に Nothing に初期化されます。おそらく C# プログラマーにはうんざりですが、VB.NET コードでは完全に慣用的です。

于 2012-08-01T11:48:10.497 に答える