小弟刚刚学习指针,还望各位大侠不吝赐教!(问题解决立刻结帖)
我的问题如下:
1:在一个WindowsForm程序中,我试着写下以下代码:
unsafe
{
    fixed(int* p = &(this.textBox1.Left))
    {
        //etc
    }
}
编译的时候说找不到地址。
2:怎么样找到string类型的地址,例如:
unsafe
{
    fixed(int* p = &(this.textBox1.Text))//Left -> Text变换
    {
        //etc
    }
}
请问这该怎么做?
刚学习这方面的知识,还望各位大侠指教,不胜感激!!

解决方案 »

  1.   

    C# 保留一些对旧技术的支持不代表它们不可取代,恰恰相反,加上 unsafe 标记就是告诉你这是不推荐使用的
    如果确实需要用到指针,那就用C++,C#不是这么用D...
      

  2.   

    这个是C++的代码风格,跟C++相同。C#中已经没有指针了。
      

  3.   

    textBox1.Left
    textBox1.Text
    Left、Text这类东西叫做属性
    不是以往的成员变量
    属性有get和set方法所以属性其实没有所谓的地址的...
    属性只告诉你怎么读怎么写你可以先把属性赋值到变量里在操作这个变量的地址string s = this.textBox1.Text;
    fixed(int* p = &(s))
      

  4.   

    指针只能指向非托管类型,或void
      

  5.   

    首先谢谢以上的各位朋友,谢谢你们。
    我也知道C#不推荐使用指针,可是有一些功能我不会实现,举一个例子吧:
    我有两个TextBox:textBox1,textBox2,我想实现当textBox1.Text变化的时候,能立即反映到textBox2.Text中去,如果不使用事件,这个怎么实现?我想到的是指向同一块内存区域的指针,但我对指针不是太了解,所以就求助各位了,其实我想实现的就是这样的一个功能。
      

  6.   

    当然是使用事件啊,指向同一块内存区域的指针?那不是unsafe了,而是很危险
      

  7.   

    zswang(伴水清清)(专家门诊清洁工) ( ) 信誉:100    Blog  2007-02-28 11:49:04  得分: 0  
     
     
       textBox1.Left
    textBox1.Text
    Left、Text这类东西叫做属性
    不是以往的成员变量
    属性有get和set方法所以属性其实没有所谓的地址的...
    属性只告诉你怎么读怎么写你可以先把属性赋值到变量里在操作这个变量的地址string s = this.textBox1.Text;
    fixed(int* p = &(s))
    ------------------------------------
    谢谢!
      

  8.   

    注意,这里的变量地址不是Text值的地址
    当textBox1.Text改变的时候,s不会改变
    最好还是通过Change事件来处理我很纳闷,你通过指针,那么什么时候知道textBox1.Text发生改变?
    textBox1.Text和textBox2.Text不可能指向同一地址
    因为textBox1其实就是Edit窗体控件
    你在C++里也做不到这点
      

  9.   

    zswang(伴水清清)(专家门诊清洁工) 
    你有MSN吗?我想跟你学习。
    基础太薄弱了,很多都搞不懂怎么回事,只知道用
      

  10.   

    指针不是做这个用的
    在textBox1的Change事件代码改变textBox2的值即可
      

  11.   

    我刚开始的时候也是很不清楚什么是消息、什么是句柄、什么是类、什么是实例、什么是方法....这些东西是很难一下子弄明白所谓熟能生巧,就是不断地写程序、做项目、在实践中总结和学习很多知识MSDN里能找到,网上也能搜到,例子也有,论坛里也可以问重要的是积累经验,总结解决问题的方法程序的灵魂是算法,这才是学习的重点,其他都是编程环境(必须适应和习惯)简单的说:我不会告诉你我的MSN。
      

  12.   

    晕,这样做
    fixed (char* p = this.textBox1.Text)
    {// dosomething....}
    测试成功,从memory调试看到了数据,p指向了string的首地址应为this.textBox1.Text已经就是一个地址了
    你在&就是地址的地址,怎么会对那???
      

  13.   

    我不同意不学指针,指针有很大的学问,.net屏蔽了它,带来了简单,同时也损失了性能和灵活性
      

  14.   

    superxiaomm(小美) ( ) 信誉:98    Blog  2007-02-28 12:43:13  得分: 0  
     
     
       晕,这样做
    fixed (char* p = this.textBox1.Text)
    {// dosomething....}
    测试成功,从memory调试看到了数据,p指向了string的首地址应为this.textBox1.Text已经就是一个地址了
    你在&就是地址的地址,怎么会对那???
    -----------------------------------
    我也找到了。感谢!
      

  15.   

    我有两个TextBox:textBox1,textBox2,我想实现当textBox1.Text变化的时候,能立即反映到 textBox2.Text中去,如果不使用事件,这个怎么实现?我想到的是指向同一块内存区域的指针,但我对指针不是太了解,所以就求助各位了,其实我想实现的就是这样的一个功能。-------昏倒,直接用数据绑定就可以了....