公共类,但私有成员变量?
我仍然在用C#找到自己的脚,并且有一个快速问题,一直在困扰着我。公共类,但私有成员变量?
说我写一个类,定义一个属性如下: -
public class Employee
{
string FirstName {get; set;}
}
class Program
{
private static object GetTheEmployee()
{
return new Employee{ FirstName = "Joe" }
}
}
为什么GetTheEmployee方法中使用姓的交通不便,但是当我改变了名字“字符串”变量在Employee类'公共字符串',而是可以从Program类访问。
我会想,如果我声明类的访问修饰符为public,那么类中的所有变量默认情况下都是公共的?
您宣布课程为public
的事实并不意味着所有课程的成员都将公开。
默认情况下,类成员(字段,属性,方法等)具有private
访问修饰符,所以如果你还没有明确宣布你的财产public
(或保护,内部等),这将是私有的。
非常感谢您的回答。所以你声明一个类public的唯一原因是你可以实例化一个类的对象,但这并不意味着你可以设置该类的变量? – 2015-03-03 11:26:42
@ AngelaMarie-Daley事实上,如果你想在包含它的程序集之外创建这个类的实例,类需要公开。默认情况下,类是内部的(并且可以在同一个程序集中实例化)。是的,类成员的访问修饰符独立于类访问修饰符。 – 2015-03-03 11:36:05
我会想,如果我声明类的访问修饰符为public,那么类中的所有变量也将默认为公共的?
他们不会。类成员的默认访问修饰符是private
。如果要使它们成为public
,则需要明确指定它。
它是私人的。 – 2015-03-03 11:09:21
http://*.com/questions/12392876/class-vs-public-class – Jens 2015-03-03 11:10:15
默认(不指定)为类成员是私人的。该类的默认值是内部的。 https://msdn.microsoft.com/en-us/library/ms173121.aspx – 2015-03-03 11:12:15