私はあなたの質問に基づいて、特定のクラスインスタンスのBarがtestと等しいかどうかを確認したいと思うと思います。
もしそうなら、あなたはToStringメソッド()のオーバーライドを活用することができます
Public Class Foo
Public Bar As String = "test"
Public Overrides Function ToString() As String
Return Bar
End Function
End Class
とあなたのcase文は、次のようになります。
Dim foo As New Foo()
Select Case "test"
Case foo.ToString
' It worked!
End Select
ます。また、デフォルトのプロパティを実装することができますが、それはありません既定のプロパティにはパラメータが必要であるため、クリーンである
その後と呼ばれます
Public Class Foo
Public Bar As String = "test"
Default Public ReadOnly Property DefaultProp(JustUseZero As Integer) As String
Get
Return Bar
End Get
End Property
End Class
:
Dim foo As New Foo()
Select Case "test"
Case foo(0)
' It worked!
End Select
バーの代わりに(列の)リストだったと私は単に私のクラスと文字列の間の平等を定義したい場合はどう:バーが含まれていません我々が比較している文字列。それは実行可能になるだろうか? –
@ケビン:うーん、別の質問です。私はequals演算子をオーバーロードします。例については、[here](http://msdn.microsoft.com/en-us/library/336aedhh.aspx)を参照してください。 'Equals'をオーバーロードすると、おそらく' GetHashCode'もオーバーロードされるはずです(http://stackoverflow.com/questions/371328/why-is-it-important-to-override-gethashcode-when-equals-method -is-overriden-in-c)を使用します。 –