框架源代码调试仅用于非常有限的命名空间
本文关键字:命名空间 非常 用于 源代码 调试 框架 | 更新日期: 2023-09-27 18:12:54
我花了2个小时才让它正常工作,我猜几乎阅读了这里所有的答案。
作为一个c#新手,我想学习和更好地理解接口是如何在框架中实现和使用的。
自动加载源代码似乎只适用于这组有限的程序集:http://referencesource.microsoft.com/indexedpdbs.txt
但是:我能做些什么来调试到ArrayList方法在我的例子是System.Collections
的一部分,不包括吗?
不应该是mscorlib的一部分,它是列表的一部分吗?
相反,我可以调试到例如任何窗体属性的源代码。
这里是代码,可能你知道这段代码行从一个旧的考试准备书:
static void Main(string[] args)
{
ArrayList shoppingCart = new ArrayList();
shoppingCart.Add(new ShoppingCartItem("Car", 5000));
shoppingCart.Add(new ShoppingCartItem("Book", 30));
shoppingCart.Add(new ShoppingCartItem("Phone", 80));
shoppingCart.Add(new ShoppingCartItem("Computer", 1000));
shoppingCart.Sort(); // this are the two lines I wanted to examine
shoppingCart.Reverse();
}
public class ShoppingCartItem : IComparable
{
public string itemName;
public double price;
public ShoppingCartItem(string _itemName, double _price)
{
this.itemName = _itemName;
this.price = _price;
}
public int CompareTo(object obj)
{
ShoppingCartItem otherItem = (ShoppingCartItem)obj;
return this.price.CompareTo(otherItem.price);
}
}
如果你打算从源代码中学习,你现在应该从。net Core 5源代码开始,它是完全开源的,
https://github.com/dotnet/corefx我说的完全是指微软开放了CLR运行时、BCL、MSBuild、编译器和所有需要的东西。
参考源代码曾经发布过一次用于调试。这就是为什么微软只发布了一组有限的文件(因为你从来没有真正需要调试成简单的类型,如ArrayList,它们只是工作)。