gpt4 book ai didi

c# - 如何防止直接访问类中的变量?

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:47 24 4
gpt4 key购买 nike

在我的类里面,我有私有(private)变量,我只能通过 get/set 在类内使用它。有时我忘记了,我不应该直接使用变量( 甚至在类 中)并且必须使用 get/set。

如何使使用变量的唯一方法是获取/设置?

public class A {
int x;

public XVariable {
get { return x; }
set { x = value }

// some additional operations
}

void SomeMethod() {
x = 5; // no
XVariable = 5; // yes
}
}

最佳答案

C# 有 auto properties .您的代码中不需要支持字段。

public class A {
public XVariable {
get;
set;
}
}

您还可以有不同的访问修饰符。就像您只想在类里面进行设置一样。
public class A {
public XVariable {
get;
private set;
}
}

您的代码不会有可访问的支持字段,但编译器会在 MSIL 中生成一个支持字段(C# 编译到的内容)。不过,您不必担心那部分。

潜在的不利因素 Joe指出自动 Prop ,有时您需要在设置某些内容时在您的属性中执行其他操作(尤其是事件处理程序)。但这对于自动 Prop 是不可能的。那样的话,他的回答会更合适。但是,如果这不是您的用例所关心的,那么我的回答应该就足够了。

关于c# - 如何防止直接访问类中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com