C#类属性代码差异
我不知道这段代码之间有什么区别C#类属性代码差异,c#,properties,C#,Properties,我不知道这段代码之间有什么区别 class Person { private string name = "N/A"; public string Name { get { return name; } set { name = value; } } } class Person { public strin
class Person
{
private string name = "N/A";
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
class Person
{
public string Name { get; set; }
}
这个密码呢
class Person
{
private string name = "N/A";
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
class Person
{
public string Name { get; set; }
}
谁能帮我解释一下它们的用途,以及它们何时被使用。优势和劣势。谢谢 这两段代码完全相同。当您编写第二段代码时,c#编译器实际上会将其转换为第一段代码。这只是一种更快的书写和阅读方式 尽管如此,第一个例子还是有它的用处的 例如,如果要在设置名称值之前以任何方式更改名称值,则必须使用第一个示例 例如:
class Person
{
private string name = "N/A";
public string Name
{
get
{
return name;
}
set
{
name = "My name is:" + value;
}
}
}
这两段代码完全相同。当您编写第二段代码时,c#编译器实际上会将其转换为第一段代码。这只是一种更快的书写和阅读方式 尽管如此,第一个例子还是有它的用处的 例如,如果要在设置名称值之前以任何方式更改名称值,则必须使用第一个示例 例如:
class Person
{
private string name = "N/A";
public string Name
{
get
{
return name;
}
set
{
name = "My name is:" + value;
}
}
}
上面是一种编写属性的简捷方法,称为自动实现属性(AIP)。C#编译器将在幕后自动为这些文件创建一个私有字段
上面是一种编写属性的简捷方法,称为自动实现属性(AIP)。C#编译器将在幕后自动为这些文件创建一个私有字段 吹毛求疵:它们不完全相同:你没有访问支持字段的权限。好的是,这是真的,也许我应该把它写成“编译版本”一模一样。吹毛求疵:它们不完全相同:你没有访问支持字段的权限。好的是,也许我应该把它写成“编译版本”它们完全一样