Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何在C#中使用属性?_C#_.net_Properties - Fatal编程技术网

我应该如何在C#中使用属性?

我应该如何在C#中使用属性?,c#,.net,properties,C#,.net,Properties,我不确定,因为在Java中,getter/setter看起来有点不同,但是编码这些东西的“c方式”是什么 备选方案a.) b、 ) c、 ) 好的,这里有一些例子。什么看起来更好?我应该先写所有私有变量声明,然后再写属性,还是应该将变量和属性声明相邻分组 在您的特定情况下(getter或setter上没有逻辑),最好的选择是C(在属性名称上稍作更改以遵循C#标准) 如果您不需要访问底层支持字段,那么建议使用自动属性,即(C)。但是,根据.NET命名约定,它们应该是PascalCase publi

我不确定,因为在Java中,getter/setter看起来有点不同,但是编码这些东西的“c方式”是什么

备选方案a.)

b、 )

c、 )

好的,这里有一些例子。什么看起来更好?我应该先写所有私有变量声明,然后再写属性,还是应该将变量和属性声明相邻分组

在您的特定情况下(getter或setter上没有逻辑),最好的选择是
C
(在属性名称上稍作更改以遵循C#标准)


如果您不需要访问底层支持字段,那么建议使用自动属性,即(C)。但是,根据.NET命名约定,它们应该是PascalCase

public string Name { get; set; }
public int Time { get; set; }

d如何,请遵循.NET命名约定:

public string Name { get; set; }
public int Time { get; set; } // Odd type for time, admittedly...
不要麻烦自己手动编写属性,除非您在其中做了一些非琐碎的事情

如果您手动编写属性实现,则取决于您如何命名私有变量。就我个人而言,我会使用:

private string name;
public string Name
{
    get { /* whatever */ }
    set { /* whatever */ }
}
。。。但如果你想用下划线,那是你的特权

至于成员的排序,这更是你自己的选择。假设你正在与一个团队合作,与团队交谈,看看当地的惯例是什么。

前两个只是命名惯例,你应该根据公司/开发团队或你自己的决定来选择

public string Name {get; set;}
public int Time {get; set;}
第三种情况是贴花相同属性的短方法,其中实际的
字段将由运行时本身生成

短小的优点:短小而简单

短缺点:不能将内容放入geter/setter中,不能在Visual Studio中放置断点


希望这会有所帮助。

这取决于具体情况,当您定义字段时,会使用下划线字符,如果您只需要一个简单的getter/setter,则无需自己定义字段,因为编译器将在后台为您定义字段。

我选择该选项,其他大多数人已经发布了

public string Name {get; set;}
public int Time {get; set;}
注意,您可以分别对setter和getter进行更改保护级别,例如

public string Name {get; protected set;}
protected int Time {get; private set;}
只能使用比应用于孔特性更高的保护

private string name;
public string Name
{
    get { /* whatever */ }
    set { /* whatever */ }
}
public string Name {get; set;}
public int Time {get; set;}
public string Name {get; set;}
public int Time {get; set;}
public string Name {get; protected set;}
protected int Time {get; private set;}