【发布时间】:2015-07-01 18:18:10
【问题描述】:
假设我们有一个名为 x 的全局变量,如下所示:
public class test
{
private int x = 0;
//lots of code here...
}
现在假设我们希望在某个任意点更改类测试内的 x 值(而不是从类外部)。
有两种方法可以做到这一点:
使用 void 方法:
public class test
{
private int x = 0;
//lots of code here...
changeX();
private void changeX()
{
// calculate stuff
this.x = newXValue;
}
}
使用 int 类型方法:
public class test
{
private int x = 0;
//lots of code here...
x = changeX();
private int changeX()
{
// calculate stuff
return = newXValue;
}
}
有什么理由让我选择一个而不是另一个?安全原因?可读性?
我在整个程序中都发生了这种情况,并且无法决定使用哪种约定。
【问题讨论】:
-
您显示的代码在您标记问题的任何语言中均无效。所以,哪一个更好,因为两者都无法编译。
-
您的示例都不会在 C# 中编译。
-
这不是一个与语言无关的问题 - 如果它是“正确”的,环境会影响很大。
-
这是一个与列出的语言有关的逻辑问题,而不是特定于代码的问题。
-
您提供了一些代码,就好像在类的主体中执行了一些“主”代码。事实并非如此。在一个方法中运行这个“主要”代码会破坏我相信的问题的目的,因为它会在一个 void 方法本身中运行,进而调用另一个方法。请通过提供的编译代码阐明您想要什么。