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

时间:2015-03-03 11:07:13

标签: c#

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

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

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

class Program
{
    private static object GetTheEmployee()
    {
        return new Employee{ FirstName = "Joe" }
    }
}

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

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

2 个答案:

答案 0 :(得分:6)

  

如果我宣布课程的话,我会想到。访问修饰符为public,那么类中的所有变量默认也是公共的?

他们没赢。类成员的默认访问修饰符为private。如果要使它们public,则需要明确指定它。

答案 1 :(得分:4)

您宣布课程为public这一事实并不意味着所有课程成员也将公开。

默认情况下,类成员(字段,属性,方法等)具有private访问修饰符,因此,如果您尚未明确声明您的属性为public(或受保护,内部和所以,它将是私人的。