c# - 同义词存在吗?

标签 c# keyword

有没有办法将一个变量设置为一个对象,并让另一个变量始终等于前一个变量?

var x = new object();
var y = [synonym of x];
x = null; // then y = null as well

我认为这不存在。

所以我经常使用数组来保存“引用”。

var x = new object[] { new object() };
var y = x;
x[0] = null; // then y[0] = null as well

但感觉有点蹩脚。

最佳答案

如果你真的真的需要这个,你可以做类似下面的事情,但我认为它仍然是蹩脚的(:

class RefHolder<T>
{
    public RefHolder(T value)
    {
        Value = value;
    }

    public T Value { get; set; }
}

用法

var o1 = new RefHolder<object>(new object());
var o2 = o1;
o2.Value = null; // now o1.Value is null too

关于c# - 同义词存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17364273/

相关文章:

c# - 带有托管扩展框架 (MEF) 的工厂模式

lisp - 更改默认值 :junk-allowed value of parse-integer from a top level function in LISP

c++ - c++ 类访问关键字 "signals"是什么意思?

lisp - 在 lisp 中应用和关键字参数

c# - 连接到尚未创建的数据库?

c# - 替换文件路径中的分隔符

c# - 如何将 C# 字符串数组编码为 VB6 数组?

c# - 如果该行已存在,则获取最后插入的 Id 返回 0

python - __init__() 获得意外的关键字参数 'wellness'

java - 获取所有 Java 保留关键字的列表