C# c获取和设置方法与方法重载:哪个更好?
我可以这样做:C# c获取和设置方法与方法重载:哪个更好?,c#,naming-conventions,C#,Naming Conventions,我可以这样做: { void SetAnything(para, para, para) {...} int GetAnything(para, para) {...} } { int Anything(para, para, para) {...} int Anything(para, para) {...} } { decimal Budget(department, year, decimal value) {...} decimal B
{
void SetAnything(para, para, para) {...}
int GetAnything(para, para) {...}
}
{
int Anything(para, para, para) {...}
int Anything(para, para) {...}
}
{
decimal Budget(department, year, decimal value) {...}
decimal Budget(department, year) {...}
}
。。或者我可以这样做:
{
void SetAnything(para, para, para) {...}
int GetAnything(para, para) {...}
}
{
int Anything(para, para, para) {...}
int Anything(para, para) {...}
}
{
decimal Budget(department, year, decimal value) {...}
decimal Budget(department, year) {...}
}
我必须决定走哪条路,所以我问你:
这两种方法之间的首选方式是什么?为什么
编辑:
谢谢你到目前为止的回复。由于不完全清楚我的方法在做什么,我稍微重写了一些示例:
{
void SetBudget(department, year, decimal value) {...}
decimal GetBudget(department, year) {...}
}
。。或者我可以这样做:
{
void SetAnything(para, para, para) {...}
int GetAnything(para, para) {...}
}
{
int Anything(para, para, para) {...}
int Anything(para, para) {...}
}
{
decimal Budget(department, year, decimal value) {...}
decimal Budget(department, year) {...}
}
。。甚至:
{
void Budget(department, year, decimal value) {...}
decimal Budget(department, year) {...}
}
仍然首选使用Set/Get前缀?,它不会像任何人期望的那样过载。很明显,你在做两件不同的事情:设置和设置。 后期编辑
然而,事实仍然是,超载实际上实现了两个不同的目标;一个是设置,一个是获取。如果您使用给定的构造来实现这一点,那么这不会是一个问题;财产。但是,由于您实际上是在重载一个方法,所以它并不典型。显然,第一种方法是正确的,第二种方法是不鼓励的 如果您正在寻找定义自定义getter和setter的方法,则命名应为:
Get[variable name]
Set[variable name]
因此,您现在可以通过名称、您正在做的事情以及您和其他人更容易清楚地看到代码在做什么
为完全不同的目的重载一个方法会导致混乱的代码,即调用一个方法,但为完全不同的目的重载版本。在代码中,您将如何决定使用哪个重载?仅仅通过参数的数量?听起来像是一场噩梦……在C语言中,对于getter和setter有一个名为properties的东西……接受3个参数的方法如何在第二个代码段中返回int?它在第一个代码段中是无效的。@MichałTurczyn不,属性没有参数。@Sweeper好吧,在setter中有值,在getter中-为什么需要参数。。。我想我不完全理解这个问题: