gpt4 book ai didi

C# 私有(private)变量和 java 私有(private)变量 getter 和 setter - 区别?

转载 作者:行者123 更新时间:2023-12-01 18:47:07 27 4
gpt4 key购买 nike

我试图理解 C# 使用 getters 和 setters 自动声明变量与 java 声明之间的区别。

在java中我通常这样做:

private int test;

public int getTest() {
return test;
}

public void setTest(int test) {
this.test = test;
}

但是在 C# 中我尝试了这样的事情:

private int test { public get; public set};

但这根本不允许访问该变量。所以我最终得到了这个:

public int test { get; set; }

这样我就可以从类外部访问变量测试。

我的问题是,这两者有什么区别? C# 实现公开变量是不是一个坏主意?

在 C# 中,我已将变量声明为“public”。而在java中它被声明为“私有(private)”。这有什么影响吗?

找到了一个非常好的答案(除了下面的答案)here

最佳答案

完全一样。

您在 C# 中定义的自动属性无论如何都会编译为 getter 和 setter 方法。它们被归类为“语法糖”。

这个:

public int Test { get; set; }

..编译为:

private int <>k____BackingFieldWithRandomName;

public int get_Test() {
return <>k____BackingFieldWithRandomName;
}

public void set_Test(int value) {
<>k____BackingFieldWithRandomName = value;
}

关于C# 私有(private)变量和 java 私有(private)变量 getter 和 setter - 区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17293202/

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