Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动实现属性的支持字段的可访问性如何?_C#_Private_Encapsulation_Accessor - Fatal编程技术网

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;
   }
}