日期:2014-05-17  浏览次数:21058 次

【既然不能使用指针】这是如何做到的?
开始接触C#一星期多了,不让用指针始终让人非常头疼。
今天碰到的是多窗口问题,网上查了个代码,不太懂:

//form1:
public partial class Form1 : Form
    {
        public delegate void MyDel(string value);
        public event MyDel txtzt;
        public Form1()
        {
            InitializeComponent();
        }
                       
        private void button1_Click(object sender, EventArgs e)
        {
           Form2 f2 = new Form2(this);//this这里说的是指针,伏笔
                 f2.Show();
        }

    }
//form2
public partial class Form2 : Form
    {
         public Form2(Form1 f1)//Form1吗?你确定不是Form1*吗?刚才明明给的是指针呀
        {
            InitializeComponent();
            f1.txtzt += new Form1.MyDel(txtzt);
        }
        
        private void txtzt(string s)
        {
            this.textBox1.Text = s;
        }
    }

按照我的理解,既然在Form2里可以直接修改Form1的内容,那只有指针才能做到的呀。
而偏偏C#不允许用指针(嘴上说不让用,难道背地里还是在用指针?)
求给我说详细点儿,谢谢!

------解决方案--------------------
在C#和Java里面那叫"引用",你也可以把它当成是一个"指针"