C#中的私有/公共变量

时间:2014-12-21 21:11:41

标签: c# .net

我来自Java,我学会了从不设置变量公开。始终将变量设为私有,并使其可以通过setter和getter方法进行访问。

我在最后几天开始使用C#,实际上我遇到了这个问题:

String Name { get; set; }

从其他课程中,我无法访问变量" Name"

所以我认为这可能是一个很好的解决方案:

 String Name { public get; public set; }

但是......不起作用。

我必须公开每个变量吗?

4 个答案:

答案 0 :(得分:6)

您正在定义属性,而不是字段。这相当于在Java中创建getNamesetName以及相关的私有字段。

您使用的语法是执行此操作的简写。

要使其可访问,请将该属性设置为public。

public String Name { get; set; }

如果您不希望设置方法可访问,则可以将其标记为私有:

public String Name { get; private set; }

这将使编译器创建与以下内容等效的代码:

private String _name;

public String GetName()
{
    return _name;
}

private void SetName(String name)
{
    _name = name;
}

答案 1 :(得分:4)

您需要设置属性public

public String Name { get; set; }

默认情况下,班级成员为private

答案 2 :(得分:1)

这些是属性,而不是字段。 C#中的属性与Java中的getter和setter方法相同。要公开它们,您应该public string Name { get; set;}

一般来说,你的课程中不应该有太多这些,因为它打破了封装,并且是一个糟糕设计的症状。

答案 3 :(得分:0)

@ Selman22已经给了你一个简洁而准确的答案,并延伸了@Mike Christensen的评论。 (基本上,你在谈论Properties)。您还可以考虑使用C#中的一个选项来使用Internal访问修饰符,应用于只能在同一程序集中的文件中访问的类型或成员,因此外部世界不太可见。 最好的问候,