3
static void Main(string[] args)
{
    List<string> myList = new List<string>() { "A", "B" };
    string myString = "abc";
    int myInt = 42;
    System.Xml.Linq.XElement root = new System.Xml.Linq.XElement("abc");

    Console.WriteLine(myList.First()); //breakpoint on this line
    Console.WriteLine(myString);
    Console.WriteLine(myInt);
    Console.WriteLine(root);
}

古い開発環境 (vs2008、XP、32 ビット) で上記のコードを実行すると、次のように表示されます。

args        {string[0]}    string[]
+ myList    Count = 2      System.Collections.Generic.List<string>
myString    "abc"          string
myInt       42             int
+ root      <abc />        System.Xml.Linq.XElement

新しい開発環境 (vs2008、Windows7、64 ビット) で実行すると、次のように表示されます。

args                 {Length=0}            array<System::String^> ^
+ myList             0x000000000254bb60    System::Collections::Generic::List<System::String^>^
myString             "abc"                 System::String^
myInt                42                    int
+ root               0x000000000254be60 { emptySequence=<undefined value> name=0x000000000254bd88 lastAttr=<undefined value> }    System::Xml::Linq::XElement^
+ <>g__initLocal0    0x000000000254bb60    System::Collections::Generic::List<System::String^>^

新しい環境の Locals ウィンドウが C++ を話しているように思えます。

ローカル ウィンドウの動作を変更するにはどうすればよいですか?

4

2 に答える 2

3

デバッガーがPDBをC#コードではなくC ++/CLIとして解釈しているようです。それが起こると私が考えることができる唯一の理由は、あなたのインストールが壊れている場合です。特に、式エバリュエーターの選択を取り巻くレジストリが正しくありません。この時点で、インストールの修復に行き詰まっていると思います。

さらに、次のレジストリキーを削除することをお勧めします

HKCU:\Sofware\Microsoft\VisualStudio\9.0
于 2010-09-28T18:36:31.683 に答える
0

「このプログラムを互換モードで実行する」オプションのチェックを外して、問題を解決しました。

于 2010-09-28T20:56:51.093 に答える