none
为什么在类的定义中,其成员可以是自身的类型? RRS feed

  • 问题

  • 以下代码编译可以,但是不能运行,不过如果允许这样定义一个类,那么不是一个逻辑漏洞吗?


    using System.Windows;

    namespace _DependencyProperty
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                Fruit f = new Fruit("Fruit");
                MessageBox.Show(f._fruit._fruit._fruit._name);
            }
        }

        public class Fruit
        {
            public Fruit _fruit = new Fruit("_fruit");
            public string _name;

            public Fruit(string argName)
            {
                _name = argName;
            }

        }
    }

    这个能编译还能运行,是不是在编译成IL的时候,把循环去掉了呀?

    ============================================================

    using System.Windows;

    namespace _DependencyProperty
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                Fruit f1 = new Fruit("f1");
                f1._fruit = f1;
                f1._fruit._fruit._fruit._fruit._fruit.ShowName();
            }
        }

        public class Fruit
        {
            public Fruit _fruit; //= new Fruit("_fruit");
            public string _name;

            public Fruit(string argName)
            {
                _name = argName;
            }

            public void ShowName()
            {
                MessageBox.Show(_name);
            }

        }
    }


    此去千万里,岁月忽已晚!


    2014年2月1日 13:02

答案

全部回复