ここから本文です

VB.NETでの質問です。

k_a********さん

2011/7/2720:53:00

VB.NETでの質問です。

VB2008以降です。

Dim intNum As Integer = objTest.Item(1).value
Dim strNum As String = objTest.Item(1)

のような使い方ができるオブジェクト「objTest」の中身の定義の仕方を教えてください。

閲覧数:
190
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

cho********さん

2011/7/2723:21:40

質問のコードをまとめてみると、
・ objTestの型には、IntegerまたはIntegerに変換できる引数 を1つもつ Itemプロパティもしくはメソッドがある。
・ その戻り値は String型もしくはString型に暗黙に変換できる型である。
・ また、その型は IntegerまたはIntegerに変換できる値を返す value というプロパティもしくは引数なしメソッドを持つ。
ということです。String型にはValueというメンバはありませんので、String型に変換できる別の型を作ることになります。たとえば
Class TestItem
Private _stringValue As String
Public Sub New(ByVal StringValue As String)
Me._stringValue = StringValue
End Sub
Public ReadOnly Property Value() As Integer
Get
Return Integer.Parse(Me._stringValue)
End Get
End Property
Public Shared Widening Operator CType(ByVal item As TestItem) As String
Return item._stringValue
End Operator
End Class
サンプルなんでいい加減に作ってます。要はCType演算子を定義することです。で、呼び出し側の objTestの型はItemプロパティのあるListにしてみます。

Dim objTest As New List(Of TestItem)
objTest.Add(New TestItem("10"))
objTest.Add(New TestItem("15"))
Dim intNum As Integer = objTest.Item(1).Value
Dim strNum As String = objTest.Item(1)

一応、質問のコードはこんな感じで動きはしますが、これで何をしたいのかが明確でないので適切でないかもしれません。参考程度で。

質問した人からのコメント

2011/7/31 18:01:47

降参 choc_dash 様
ありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる