这些是 Person 类的声明。
protected int ID { get; set; }
protected string Title { get; set; }
protected string Description { get; set; }
protected TimeSpan jobLength { get; set; }
如何使用 get/set?在 main 中,我实例化了一个
Person Tom = new Person();
Tom.set/get是怎么实现的??
我习惯于使用 C++ 风格编写 int getAge() 和 void setAge() 函数。但是在 C# 中有处理 get 和 set 的快捷方式吗?
最佳答案
假设您可以访问它们(您声明的属性是 protected
),您可以像这样使用它们:
Person tom = new Person();
tom.Title = "A title";
string hisTitle = tom.Title;
这些是 properties .它们基本上是一对具有适当元数据的 getter/setter 方法(尽管您可以只有一个 getter 或一个 setter)。您给出的示例是自动实现的属性,其中编译器正在添加支持字段。不过,您可以自己编写代码。例如,您声明的 Title
属性如下:
private string title; // Backing field
protected string Title
{
get { return title; } // Getter
set { title = value; } // Setter
}
... 除了为支持字段指定了一个“无法说出的名称”——您无法在 C# 代码中引用的名称。您被迫浏览属性本身。
您可以使属性的一部分比另一部分更受限制。例如,这是很常见的:
private string foo;
public string Foo
{
get { return foo; }
private set { foo = value; }
}
或作为自动实现的属性:
public string Foo { get; private set; }
这里的“getter”是公开的,而“setter”是私有(private)的。
关于C# 获取/设置语法用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662442/