Nee*_*ham 1 c# oop methods get set
我是一名有抱负的学生,未来的目标是追求计算机科学的职业.我已经阅读了相当多的文档,我理解OOP的基本原理,但我想知道如何{Get ; Set;}在c#中使用这些方法.提前致谢.
例如
public class Car
{
public Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这public string Name { get; set; }称为自动实现的属性.编译器将创建一个私有支持字段,该字段将保存我们将使用此属性设置的值.此外,它将创建两个方法,一个用于set(设置值),另一个用于get(获取值)此值.您可以认为这set是一项任务,get是一种阅读.因此,当我们说我们set实际上是一个值时,我们意味着我们为变量赋值.而当我们说我们get实际上是一个值时,我们意味着我们读取存储在变量中的值.
此外,这public string Name { get; set; }相当于以下内容:
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
Run Code Online (Sandbox Code Playgroud)
相互比较,第一个使用较少的代码行完成相同的工作.但是,在这两种情况下,C#编译器将按照上面的说明创建一个设置值的方法和一个获取值的方法.主要区别在于,在第二种情况下,不需要创建支持字段.
更新
为了更清楚上面的内容,我创建了一个控制台应用程序,在其中我添加了一个Customer使用以下定义调用的类:
class Customer
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我运行我的奇妙应用程序,然后我查看了由C#创建的MSIL代码.

我使用一个名为Ildasm.exe(IL Disassembler)的免费.net反汇编程序创建了上面的代码.这个工具正如其名称所暗示的那样,当我们构建一个应用程序时,它会显示C#编译器创建的IL代码.关于这个工具的一个很好的教程,可以发现在这里.
正如您所注意到,Customer类型被编译为具有支持字段和两个方法的类,get_Name并且set_Name.这些是由C#编译器自动创建的.