C#引用成员变量

And*_*rew 6 c# pointers reference

在C#中,有没有办法将引用作为成员变量保存在对象中(如C++中的对象指针),而不仅仅是作为参数?

编辑:如何将指针或对象的引用作为成员变量?

Jon*_*eet 12

不.不要忘记,参数可以引用一个局部变量,该变量在您稍后使用该对象时超出范围.有两种选择:

  • 使用可变包装类型
  • 使用代理来捕获变量
  • 重新设计您的代码,首先不要求这样做

如果不了解更多关于你想要实现的目标,很难知道哪个是最合适的,但却ref是一个死胡同.


use*_*116 4

如果您的意思ref是参数传递约定,那么不,您无法存储它。来自 MSDN 上的第一个注释:

不要将引用传递的概念与引用类型的概念混淆。这两个概念并不相同...


编辑:根据您更新的问题,C# 对于指针和引用有不同的术语。C# 中的指针是一种不安全的构造,用于直接引用对象的内存位置。我这么说是因为内存位置可以根据垃圾收集而改变(除非您在内存中修复它)。

C# 中的引用是传递和存储引用类型的默认方式。它们类似于其他语言中的指针,但并不完全相同。但是,通过引用参数传递约定允许您直接更改对象所引用的内容。

如果您的目标是保留对非引用类型局部变量的可变引用,则必须将局部变量封装在引用类型(如类)中。如果您可以提供一些示例代码,我们可以提供一些具体示例。