C# 自动实现属性的支持字段的可访问性如何?
支持字段自动是私有的-我说的对吗C# 自动实现属性的支持字段的可访问性如何?,c#,private,encapsulation,accessor,C#,Private,Encapsulation,Accessor,支持字段自动是私有的-我说的对吗 class Car { public String Mark { get; set; } public String Model { get; set; } } 在 类Car是内部的 属性标记是公共的 属性模型是私有的 这些注释似乎表明您正在询问支持字段的可访问性 这两个属性都有一个隐藏的、不可访问的备份字段。C#自动实现属性的文档说明: 当您声明属性[…]时,编译器将创建一个只能通过属性的get和set访问器访问的私有匿名支持字段 这在
class Car
{
public String Mark { get; set; }
public String Model { get; set; }
}
在
- 类
是内部的Car
- 属性
是公共的标记
- 属性
是私有的模型
这些注释似乎表明您正在询问支持字段的可访问性 这两个属性都有一个隐藏的、不可访问的备份字段。C#自动实现属性的文档说明: 当您声明属性[…]时,编译器将创建一个只能通过属性的get和set访问器访问的私有匿名支持字段 这在VB中是不同的,在VB中,支持字段可以从类中访问:
另请参见:自动实现的属性:
public String Mark { get; set; }
public String Model { get; set; }
当您声明一个如示例中所示的自动实现时,编译器将创建一个只能通过属性的get和set访问器访问的私有匿名支持字段
private string mark;
private string model;
public String Mark {
get
{
return mark;
}
set
{
mark = value;
}
}
public String Model{
get
{
return model;
}
set
{
model = value;
}
}
您所说的自动私有是什么意思?您是否在询问带有
public
访问修饰符的属性是否为private
?或者如果该类是私有的?还是别的?属性Mark
和Model
是自动实现的属性,默认情况下它们可以访问私有字段。在公共属性后面有字段(字符串标记和字符串模型)?它们是私有的吗?是的,在后面的编译器创建私有支持字段中。它们不会被命名为mark
和model
,但是是的,除非这个答案是正确的。
private string mark;
private string model;
public String Mark {
get
{
return mark;
}
set
{
mark = value;
}
}
public String Model{
get
{
return model;
}
set
{
model = value;
}
}