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.1
- 回答日時:
戻り値をObject型にすればできないことも無いような気もします。
でもわたしなら、型に応じて共通のDataGetメソッドを持ったクラスを作ります。
将来的に型が増えてもクラスを増やすだけで対応できるからです。
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.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.4
- 回答日時:
#1さんのおっしゃられる通り、xxxをobjectにすればよいと思います。
ジェネリックを利用するのも良いと思います。
http://www.microsoft.com/japan/msdn/thisweek/300 …
他の方へキャストすることもイメージに近いのではないでしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
もしオーバーロードを使用するのであれば、引数の数を変えるなどして区別をつけておいたほうが良いでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) エクセルVBA Msgboxでの変数の活用 4 2023/07/23 08:33
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSONで文字列が長い時
-
Perlでアルファベットを数...
-
CLispのloop内の挙動について
-
Application.ScreenUpdating = ...
-
Pythonでターミナルに文字を出...
-
どちのほうがすきですか?
-
パイソンのクラスのブログラム
-
パイソンのクラスについて
-
パイソンプログラミング
-
パイソンのクラスについて
-
セレクトボックスの中を一部隠...
-
vscode 文字化け
-
16進の10進変換について
-
[python] 文字列を変数名として...
-
perlで作ったcgiがIE6で西ヨー...
-
malformed header from script....
-
Perlの日付の比較に関して
-
パソコン → パャRン
-
【プルダウンで選んでGOボタン...
-
phpでボタンを押したときに変数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
フォームで入力した値を表示し...
-
【C#】数値の範囲チェックについて
-
ラズパイで感圧センサーを動か...
-
linq で 楽天ウェブサービスのX...
-
Perlでアルファベットを数...
-
CGIでのページ指定~その(2)
-
途中まで出来ているのですが‥(D...
-
CGIやPHPで外部ファイルの内容...
-
CGIからメールに書き出しする際...
-
デコードできない時があります><
-
gpioを使ってSPIをシミュレーシ...
-
フォームのINPUT NAM...
-
map(STL)でinsertを行いたいで...
-
Application.ScreenUpdating = ...
-
どちのほうがすきですか?
-
formで特定のinputを送信しない...
-
文字の横にプルダウンを表示さ...
-
16進の10進変換について
おすすめ情報