公共类,但私有成员变量?

Ang*_*ley 2 c#

我仍然在用C#找到我的脚,并且有一个快速的问题一直困扰着我.

假设我写了一个类并定义了一个属性如下: -

public class Employee
{
    string FirstName {get; set;}
}

class Program
{
    private static object GetTheEmployee()
    {
        return new Employee{ FirstName = "Joe" }
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么在GetTheEmployee方法中使用FirstName是不可访问的,但是当我将Employee类中的FirstName'string'变量改为'public string'时,可以从Program类访问它.

我原以为如果我将类的访问修饰符声明为public,那么类中的所有变量默认都是公共的?

Sel*_*enç 6

我原以为如果我将类的访问修饰符声明为public,那么类中的所有变量默认都是公共的?

他们不会.类成员的默认访问修饰符是private.如果要创建它们public,则需要明确指定它.


And*_*yev 5

您已将 class 声明为 as 的public事实并不意味着 class 的所有成员也将是 public。

默认情况下,类成员(字段、属性、方法等)具有private访问修饰符,因此如果您没有明确声明您的属性public(或 protected、internal 等),它将是私有的。