zoukankan      html  css  js  c++  java
  • 关于循环引用!

    什么是循环引用呢?

    举个例子更容易说明这个问题:

        class Program
        {
            static void Main(string[] args)
            {
                B b = new B();  
            }
        }
        public class A
        {
            public B b=new B();
        }

        public class B
        {
            public A a=new A();

        }

    A中的字段引用了B,B中的字段引用了A,导致了循环引用的问题。可惜的是C#的编译器并不能检测出这类的问题 !

    如果代码是这样写的,会导致不停地在堆中分配新对象,最终导致抛出StackOverflowException异常。

    当然大家都不会这样写的,因为很明显这里有循环引用。

    但是有时这个问题比较隐晦,可能是A引用了B,B又引用了C,而C又引用了D,最后D又引用了A,最终导致这个问题,写这里文章希望引起大家的注意。

  • 相关阅读:
    Ethical Hacking
    Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    食物链 POJ
    Wireless Network POJ
    Candies POJ
    畅通工程再续 HDU
    Jungle Roads HDU
  • 原文地址:https://www.cnblogs.com/xuefeng1982/p/1391537.html
Copyright © 2011-2022 走看看