Visual Studio的調試器奇怪的行爲時,我用普通的結構一般引用類型的組合:如何在Visual Studio的調試器中擺脫System .__ Canon?
class C<T>
{
public T ClassItem { get; set; }
}
struct S<T>
{
public T StructItem;
}
class Program
{
static void Main(string[] args)
{
var foo = new C<S<string>> {ClassItem = new S<string> {StructItem = "Bar"}};
}
}
當我試圖在ClassItem場偷看,我看到陌生System.__Canon
代替領域的實際內容:
其實,有在結構內容偷看的方式,如果我這一行添加到監視窗口:((S<string>) foo.ClassItem).StructItem
。在這種情況下,我可以看到「Bar」字符串。但對於大型項目和更復雜的類型而言,這是一個巨大的痛苦。那麼有沒有辦法讓調試器正常運行?
我有兩個版本的Visual Studio:2013和2015,他們的行爲方式都是一樣的。
msdn問題與.net 2.0中的一些錯誤有關,它似乎過時了一點。 __Canon的目的現在對我來說更加清楚,但這不是問題。問題是關於顯示結構內容的糟糕的調試器功能。這似乎是唯一的方法是用一個類來替換'struct S'。 –
koxy