我很好奇是否可以在运行时跟踪对象引用下的操作(复制、访问等)。例如,如果我调试以下代码:
private static void Main(string[] args)
{
// Creating new object and reference.
var myList = new List<int>();
// a) Copying a reference to method.
UpdateList(myList);
}
private static void UpdateList(IList<int> list)
{
// b) Copying the reference.
var localList = list;
// c) Accessing the object through copied reference.
localList.Add(1);
// d) Copying a reference to method.
int count = GetListElementsCount(localList);
}
private static int GetListElementsCount(IList<int> list)
{
// Another reference access.
// Breakpoint here.
return list.Count;
}
并在 中设置断点GetListElementsCount
,我可以查看list
参数来源和对其所做的更改(a、b、c、d)吗?Roslyn 编译器是否为此提供了一些 C# API?
非常感谢。