- PR -

VB.NET デバッグ実行せずに関数を実行して戻り値を知る方法

投稿者投稿内容
うめ
会議室デビュー日: 2003/07/01
投稿数: 13
お住まい・勤務地: 関西地区
投稿日時: 2004-01-30 11:53
現状
 デバックポイントを設定して、デバック実行後、イミデエイトウィンドなどで
 関数を実行して戻り値を取得している。
質問
 初心者の質問なのですが、コーディング中に
 「この関数を使えば、どのような値が取得できるか」っていうことがよくあるのです が上記のデバッグ実行せずに関数の戻り値を取得する方法ってあるんですしょうか?

 それがデバッグだといわれるとそうなのですが、すぐ関数の戻り値をしることができ ればと思い投稿しました。

一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-01-30 13:36
関数(メソッド)の戻り値は引数だけで一意に決まるわけではなく、そのオブジェクトや関連するオブジェクトの状態に左右されるので、コーディング中は無理です。

He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-01-30 17:08
一郎さんの仰るとおり、通常のメソッドはインスタンスの状態によって結果が変わるので、実行時でないと結果を得るのは無理です。
しかし、共有メソッドであればいつ呼び出しても結果を得ることできます。
私も共有メソッドをよく使うので、デバッグ実行しなくても気軽に結果が確認できたら良いなと思ってます。
いずれにしても、VisualStudioにはこんな機能はないようですが。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-01-30 17:27
引用:

Heさんの書き込み (2004-01-30 17:08) より:
一郎さんの仰るとおり、通常のメソッドはインスタンスの状態によって結果が変わるので、実行時でないと結果を得るのは無理です。
しかし、共有メソッドであればいつ呼び出しても結果を得ることできます。
私も共有メソッドをよく使うので、デバッグ実行しなくても気軽に結果が確認できたら良いなと思ってます。


うーん、共有メソッドでも、共有メンバを参照している場合は…と結局同じ話になりそうな。
※他にも、その中で何らかのインスタンスを作成していた場合、
 そのインスタンスの共有メンバはどうなるの?とか
 構成ファイルに依存するようなクラスを使っていたらどうなるの?とか

制限つきであれば出来なくはないと思いますが、まあ、VS.NETでは出来ないって事ですね。確かに出来たらいいなと思うことは良くあります。
うめ
会議室デビュー日: 2003/07/01
投稿数: 13
お住まい・勤務地: 関西地区
投稿日時: 2004-01-30 19:32
どうやらできないようですね。
みなさんご指摘ありがとうございました。
ホソダ
会議室デビュー日: 2004/01/30
投稿数: 1
投稿日時: 2004-01-30 20:56
イミディウエイトウインドウで、

? Test() ←Text()は自分で作った関数
123
? InitializeComponent()
関数 'InitializeComponent' が評価され void を返しました

みたいなのは言ってることが違いますか?(↑C#での実行例ですが)
「? メソッド()」を入力すると式が評価されません?
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2004-01-30 20:58
今日は、期待ですが

デバックを開始しないで実現させるという事はビルドをしないで実行の可能性もあります。
現在、VB.NETやC#.NETではデバッグの「コードの変更を摘要」が使えません(VC++.NETでは可能)
これは、ブレークポイトで停止後ソースコードを変更し、そのまま継続が出来る機能ですが、
次期バージョンでは実現出来るのではとの話が出ていますが、これが可能になれば本テーマも可能になるのでと思っています(必要な箇所のみ自動的にリビルドしてくれる?)。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-01-31 00:25
引用:

なちゃさんの書き込み (2004-01-30 17:27) より:
うーん、共有メソッドでも、共有メンバを参照している場合は…と結局同じ話になりそうな。


すいません。確認させてください。
共有メソッドであれば、「呼び出して結果を得ること」は可能ですよね?
(たとえばその結果がExceptionだったとしても)

自分の知識の確認に過ぎないので、お手隙の際にでもご回答いただければと思います。

# 自分で調べろと言われてしまいそうな。。。

スキルアップ/キャリアアップ(JOB@IT)