C#获取,设置属性
本文关键字:属性 设置 获取 | 更新日期: 2023-09-27 17:59:41
我有以下代码:
private void button1_Click(object sender, EventArgs e)
{
Class1 myClass = new Class1("ttt");
myClass.Name = "xxx";
MessageBox.Show(myClass.Name);
}
和
class Class1
{
string str = "";
public Class1(string name)
{
str = name;
}
public string Name
{
get { return str; }
set;
}
}
最初我设置:
myClass.Name = "ccc";
但后来改为:
myClass.Name = "xxx";
还更改了:
set {str = value;}
至:
set;
为什么当我运行它时,我会得到"ccc"而不是"xxx"?
在我当前的代码中有"ccc"。
public string Name
{
get { return str; }
set;
}
应该是
public string Name
{
get { return str; }
set { str = value; }
}
按如下方式更改Name
属性:
public string Name
{
get { return str; }
set { str = value; }
}
为了回答您的问题,您得到"ccc"而不是"xxx"的原因是您有编译错误。当您运行应用程序时,它会询问您是否要运行最新的已知工作配置。上一次编译程序时,您使用了"ccc"作为文字,这就是仍在运行的内容。
修复编译错误并再次运行,然后它将是"xxx"
模式
public string Name {get;set;}
就是所谓的"自动实现的属性"。
编译器创建一个私有的匿名支持字段,该字段只能通过属性的get和set访问器访问。
您的原始代码所做的似乎是获取您定义的字段,但在匿名支持字段上设置一个字段。因此生成错误。。。