23歳男性です。
visual studio 2005で開発してます。
ふと思ったんですけど、メソッドに数値を渡して、その数値によってデータ型の違うデータを取得できたら便利かなーと思いました。
************************************************************
私が考えたコード
************************************************************
■メソッド
DataGet(1)
■メソッド側処理
public function DataGet(byval num as integer) as ×××
select case num
case 1:「日付型」データ
case 2:「数値型」データ
case 3:「文字型」データ
end select
return データ
end function
************************************************************
上記のコードはあくまで想像です。
でも実際、このようなことはできるのでしょうか?
ご存知の方がいらっしゃいましたらご教授願います。
No.2ベストアンサー
- 回答日時:
オーバーロードにすればどうでしょうか。
同じ関数名で引数に応じて戻り値を変更する事が出来ます。
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Console.WriteLine(DataGet(10))
Console.WriteLine(DataGet("あ"))
Console.WriteLine(DataGet(Now()))
End Sub
Function DataGet(ByVal value As Integer) As String
Return value * 2
End Function
Public Function DataGet(ByVal value As String) As String
Return value & value
End Function
Public Function DataGet(ByVal value As Date) As Date
Return value.AddDays(3)
End Function
No.4
- 回答日時:
#1さんのおっしゃられる通り、xxxをobjectにすればよいと思います。
ジェネリックを利用するのも良いと思います。
http://www.microsoft.com/japan/msdn/thisweek/300 …
他の方へキャストすることもイメージに近いのではないでしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
もしオーバーロードを使用するのであれば、引数の数を変えるなどして区別をつけておいたほうが良いでしょう。
No.3
- 回答日時:
No2 です。
失礼しました。
Function DataGet(ByVal value As Integer) As String
Return value * 2
End Function
ではなく
Function DataGet(ByVal value As Integer) As Integer
Return value * 2
End Function
です
No.1
- 回答日時:
戻り値をObject型にすればできないことも無いような気もします。
でもわたしなら、型に応じて共通のDataGetメソッドを持ったクラスを作ります。
将来的に型が増えてもクラスを増やすだけで対応できるからです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Web画面の文字をVB6で取得したい
-
Excel 範囲指定スクショについ...
-
配列のペースト出力結果の書式...
-
VBA 別ブックから条件に合うも...
-
エクセルVBAにて =A1=B1とすれ...
-
Excelについて
-
【ExcelVBA】インデックスが有...
-
Excelで画像URLを1つずつセル...
-
Excel VBA 文字列のセルを反映...
-
VBA 指定した回数分、別シート...
-
【VBA】カーソルのある行の1行...
-
ExcelVBAのFindFirstエラ...
-
VBA 入力箇所指定方法
-
VBA 複数の各シートに行を追加...
-
10行目にフィルターを使用して...
-
Excel VBAで値を変えながら、pd...
-
VBA実行後に元のセルに戻りたい
-
エクセルのマクロについて教え...
-
vbaにてseleniumを使用したedge...
-
メールの件名をデコードしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
Perlでアルファベットを数...
-
リロード後にプルダウンの選択...
-
CGI(Perl)で、Net::FTPを使いたい
-
途中まで出来ているのですが‥(D...
-
VB2010 のユーザコントロールの...
-
【VB2005】メソッドに渡したデ...
-
複数行URLエンコードができるCG...
-
CGI作成中なんですが・・・
-
クリックしたら順番に並び替わ...
-
演算子について
-
linq で 楽天ウェブサービスのX...
-
受信データの分割
-
CGIでの表示の不具合について。
-
Excel VBAで行追加後の...
-
CGIからメールに書き出しする際...
-
【C#】数値の範囲チェックについて
-
Apacheで受信できません
-
掲示板のコメント欄にあらかじ...
おすすめ情報