C#3.0中使用Property {get,set}方法的原因是什么?

时间:2010-09-19 14:31:45

标签: c# methods get properties set

  

可能重复:
  C# Automatic Properties

你好,
 我最近从Java转向了.net(c#)平台。在这里,我还没有遇到太多问题......无论如何,我已经搞砸了

                   property{get, set}
方法。实际上我根本无法弄清楚这些(属性)的确切含义。初始化变量或字段或对象状态的相同工作可以使用方法完成。我们可以将字段声明为私有,并可以使用相同类的公共方法访问它们。

一个简单的事情我不是程序员或员工,而是计算机科学的普通学生,旨在成为一名全职职业的程序员。

- 非常感谢你们所有人提前协助我。

财产{get,set}

6 个答案:

答案 0 :(得分:6)

使用“属性”将删除方法调用,以设置值并获取私有成员的值。像:

private int number = 0;
public int Number { get{ return number;} set{number = value;}}

现在您所要做的就是创建一个对象,而不是调用函数/方法来访问该数字,您可以这样做:

ObjectCreated.Number = 100;
Console.WriteLine(ObjectCreated.Number);

隐式地,Number将设置number = 100,而下一行将获取100的数字。

答案 1 :(得分:4)

以下代码段 -

private string name;
public string Name
{
get { return name; }
set { name = value; }
}

相当于Java中的getter和setter:

private String name;
public String getName() { return name; }
public void setName(String newName) { name = newName; }

在C#3.0之后,只使用以下行就可以产生相同的效果:

public string Name { get; set; }

这称为自动属性,其中编译器为此属性生成后备私有字段和getter / setter。希望这会有所帮助。

答案 2 :(得分:4)

对于封装目的,对象的字段必须是隐藏的,有时候对象想要传递一些数据,这些数据可以是字段数据的一些变化,或者可以是多个字段数据产生的,而对象可以做到这一点由财产。

答案 3 :(得分:4)

要添加其他答案,我认为问题更多是关于何时为什么使用属性而不是方法。

属性向调用者传达一个值或多或少立即可用。当调用者必须执行myObject.CustomerList时,他希望列表已经加载并由其类在字段中缓存。他希望在对其进行进一步操作时,他不需要将列表存储在局部变量中。

当他必须做myObject.GetCustomerList()时,他预计将需要一段时间,因为列表将从某个地方检索,并且他每次拨打电话时可能会获得该列表的另一个实例,并且因此他应该将列表存储在局部变量中。

答案 4 :(得分:3)

属性的获取部分是您检索属性值的部分。

属性的设置部分是您可以为属性赋值的部分。

这是一个教程: http://www.csharp-station.com/Tutorials/Lesson10.aspx

答案 5 :(得分:2)

C#属性就像Java中的getter和setter函数一样 实际上 - 它们被编译为MSIL方法。