首先看一段简单的代码

 1     class MyClass
 2     {
 3         private string myFlag;
 4         public MyClass()
 5         {
 6             myFlag = "Test";
 7         }
 8         public void PrintFlag()
 9         {
10             Console.WriteLine(myFlag);
11             Console.ReadLine();
12         }
13 
14     }
15     delegate void MyDelegate();
16 
17     class Program
18     {
19         static void Main(string[] args)
20         {
21             MyClass myClass = new MyClass();
22             MyDelegate myDelegate = myClass.PrintFlag;
23             myClass = null;
24             GC.Collect();
25             myDelegate();
26         }
27     }

它的结果,就是打印出了“Test”

那么我在第21行new出来的实例,是谁持有对它的引用呀?

我还是看不懂IL,也想知道堆和栈上发生了什么,求讨论呀

相关文章:

  • 2021-11-18
  • 2021-10-07
  • 2021-08-21
  • 2021-11-08
  • 2021-12-21
  • 2021-12-27
  • 2021-11-01
猜你喜欢
  • 2021-06-17
  • 2021-11-15
  • 2021-06-10
  • 2021-08-30
  • 2022-12-23
  • 2022-12-23
  • 2021-06-30
相关资源
相似解决方案