- PR -

VBからC#のクラスを呼び出した場合の不具合?

投稿者投稿内容
creep
会議室デビュー日: 2004/01/15
投稿数: 6
投稿日時: 2004-07-02 16:09
  VB.NETでは、
sjisEnc.GetByteCount(text)を直にウオッチにて見ると
text=1(半角)できちんと1が入ってます。
まあ、C#でも何かの変数なりに入れればちゃんとした値になるようです。
 C#の問題なのかな?
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-07-02 18:47
もしかしたら、C#での「クイックウォッチ」の問題?

たとえば
コード:
string s = "1";

として、
コード:
bool b = (1 == sjisEnc.GetByteCount(s));


を実行したときのb (==true)と、
コード:
(1 == sjisEnc.GetByteCount(s))


をクイックウォッチしたときの値(==false)が違いますね……。

でも、実際に動かした場合には前者の動作となりますから、C#クイックウォッチ固有の問題かも…ということで。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-07-02 18:58 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2004-07-02 23:11
引用:

ぢゃん♪さんの書き込み (2004-07-02 18:47) より:
もしかしたら、C#での「クイックウォッチ」の問題?



ひょっとして、VS.NET2002とかでSPあててなかったりします?
その場合は、

BUG: Debugger Steps Incorrectly Through Visual C# .NET Code


の影響かもしれません。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-07-04 08:30
諸農です。

まずcreepさんが問題にしているのがどっちなのかハッキリさせたほうがいいかも。

1.デバッグ時のクイックウォッチの値が期待する値と異なっている
2.メソッドの戻り値が想定値と異なっている

これまでのRESの内容から

1.クイックウォッチ式の評価値が想定値外を示すと
いうのを確認できています。

2.以下のコードで「関数の戻り値」は想定通りで、
呼び出し側アプリケーションは、期待通りの結果を
ラベルに表示することが確認できています。

コード:
クラスライブラリメソッド
static public bool GetCheck(int ALen,string AStr)
{
    System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift-jis");
    return (enc.GetByteCount(AStr) == ALen);
}

C#テスターコード
private void button3_Click(object sender, System.EventArgs e)
{
    bool b = TestLib.GetCheck(int.Parse(textBox2.Text),textBox1.Text);
    label1.Text = b.ToString();
}

VBテスターコード
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Label1.Text = EncodingLib.TestLib.GetCheck(Integer.Parse(TextBox2.Text), TextBox1.Text).ToString()
End Sub



VS2003、Win2000とXPProの環境で確認しています。

問題視しているのが1であるなら、今後はクイックウォッチの
利用を差し控えるという対処が必要になります。
2で不具合が出ているのであれば、追試できる情報(VSのバージョン、
OSのバージョン等も含めて)の公開が必要なのでは?


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-07-04 13:36
引用:

よねKENさんの書き込み (2004-07-02 23:11) より:

ひょっとして、VS.NET2002とかでSPあててなかったりします?


ところがVS.NET2003なんですね。VS.NET2002を入れたことのないPCで…。
ということは、
引用:

BUG: Debugger Steps Incorrectly Through Visual C# .NET Code



が修正されてない、と?
creep
会議室デビュー日: 2004/01/15
投稿数: 6
投稿日時: 2004-07-05 11:21
Jubeiサン返信ありがとうございます。
遅くなりましたが、こちらの問題は、1のクイックウォッチのもので
動作に問題はありません。


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