在 C# 中保留类字段赋值中的引用
尝试通过引用类字段来赋值时,可能会出现意外行为。在提供的示例中,为字段分配“ref 参数”会导致引用丢失。
理解限制
C# 将字段声明限制为对变量。这是由于潜在的后果:
克服限制
虽然不可能有真正的参考字段,但还有替代方案:
选项 1 :创建一个包装类
您可以创建一个包装类将引用值保存为属性。该类可以提供获取和设置值的方法,从而有效地保留引用。
public class Wrapper { public int Value { get; set; } } ... Wrapper wrapper = new Wrapper { Value = 123 };
选项 2:使用 Lambda 表达式
您可以使用 lambda 表达式为引用的变量定义 getter 和 setter。这通过委托分配对变量的引用。
public delegate int Getter(); public delegate void Setter(int value); ... Getter getter = () => y; Setter setter = z => { y = z; };
结论
通过了解 ref 字段限制背后的原因并使用包装类等替代技术或 lambda 表达式,可以在 C# 中的类字段赋值中实现类似引用的行为。
以上是C#中给类字段赋值时如何维护引用?的详细内容。更多信息请关注PHP中文网其他相关文章!