现在有一个类MyClass y;
要将他做为指针参数传递给一个函数,以便在该函数类运用和修改类在C++中很简单:
Func((MyClass *)&y);
在C#;里应该如何实现呢

解决方案 »

  1.   

    直接传递,例如:MyClass y = new MyClass(..);
    Func( y );
      

  2.   

    直接传?如果我在
    Func( y );里面对类y的一些成员变量进行修改
    会影响到外面的MyClass y 吗?传进去的是指针地址?
      

  3.   

    还有如果不时类而是int a;
    Func(&a)
    我想在Func里改变a的值
      

  4.   

    C#中,指针只能是简单类型的,和struct,struct也不能包含对象字段
      

  5.   

    值类型应该如下:
    int a;
    Func( ref a )参看
    Item 6:   Distinguish Between Value Types and Reference Types
    《Effective C#》Item 6:区分值类型和引用类型
    http://blog.csdn.net/knight94/archive/2006/07/01/861383.aspx
      

  6.   

    Knight94(愚翁) 不好意思还有问题继续:)MyClassB{
    int *b;//假设写法
    Func(ref int a)
    {
    b=&a;}
    Func2()
    {
     *b=*b+1;
    }}
    //Func是另一个类的函数
    现在将a 传进去了,需要将a的地址保存到 *b里在Func2里对b值进行修改也等于修改了a
    在C#里该如何实现?
      

  7.   

    没有好的办法,或者说对于值类型来说,没有什么好的办法,替换的办法
    方法一:通过函数返回值来修改;
    方法二:把值类型改为引用类型,例如
    public class myInt
    {
         private int _value;
         public int Value
         {
              get{ return _value; }
              set{ _value = value; }
         }
    }
    用myInt类型来替换int类型。