私はVBとC#の列挙型は、同じまたは少なくとも非常に似ていると思った。その後、私はVBコードのバグを見つけました。以下のVBコードをコンパイルし、問題なく動作します:VBでenumsエラー、C#でenumとどのように違うのですか?
Enum Cars
Subaru
Volvo
End Enum
Enum Vegtables
Carrots
Beets
End Enum
Sub Main()
Foo(Cars.Subaru)
Foo(Vegtables.Carrots)
End Sub
Public Sub Foo(ByVal value As Cars)
End Sub
しかし、C#での等価が正しくエラーを示しています
enum Cars
{
Subaru,
Volvo
}
enum Vegtables
{
Carrots,
Beets
}
class Program
{
static void Main(string[] args)
{
Foo(Cars.Subaru);
Foo(Vegtables.Carrots);//<-- C# detects a type mismatch here
}
public static void Foo(Cars carsValue)
{}
}
なぜVBのバージョンは、型の不一致をキャッチしないのですか? VBとC#のenumは異なるのですか?
これは私の質問に答えるが、私はそれらがどのように異なっているかの説明を望んでいた。 –