2011-03-28 103 views
4

可能重复:
Storing a reference to an object in C#我可以在对象中存储对变量的引用吗?

是否有存储在一个类对象的引用的方法吗?类似于:

public class X 
{ 
    public X(ref int i) 
    { 
    _t = i; 
    } 

    public void f(int ii) 
    { 
    _i = ii; 
    } 

    private int ref _i; 
} 

// ... 
int i = 0; 
X x = new X(ref i); 
x.f(42); 
// i is now 42 

在C++中,我会用指针或引用来做到这一点。

+0

你能解释一下你想达到什么吗? – 2011-03-28 18:55:26

+0

@Rafał:我以为我做到了。我想要一个类对象引用一个存储在别处的对象,这样类成员函数所造成的变化就会反映在这个外部对象中。 – sbi 2011-03-28 18:58:33

+1

*另请参阅[.net - 存储对C#对象的引用](http://stackoverflow.com/questions/2760087/storing-a-reference-to-an-object-in-c)* – 2011-03-28 18:59:00

回答

3

您可以使用非托管代码执行此操作,但是没有托管代码方式来引用值类型。你必须手动将它装入某种对象容器中,然后引用它。

+0

谢谢。 '' – sbi 2011-03-28 19:04:20

+0

@sbi - 是不是C++的用途? ;-)在所有严肃的情况下,我认为在大多数设计中,最好有一个很好的胖对象引用,即使你从一个属性开始 - 它可以让你在需要时使用setter属性或其他任何东西除此之外,您还可以将引用类的接口扩展为多个属性,而无需添加额外的“by-reference”值。 – 2011-03-28 19:07:37

+0

我一定会在C#中做到这一点。我很乐意去做C++,相信我。 (请看我提出的问题以及我在个人资料中给出的答案...) – sbi 2011-03-28 19:36:45

相关问题