我认为我的问题是完全愚蠢的,但我必须知道答案。
在这种情况下是否可以只初始化一个变量一次?
static void Main()
{
while (true)
{
MethodA();
MethodB();
}
}
private static void MethodA()
{
string dots = string.Empty; // This should be done only once
if (dots != "...")
dots += ".";
else
dots = string.Empty;
Console.WriteLine(dots + "\t" + "Method A");
System.Threading.Thread.Sleep(500);
}
private static void MethodB()
{
string dots = string.Empty; // This should be done only once
if (dots != ".....")
dots += ". ";
else
dots = string.Empty;
Console.WriteLine(dots + "\t" + "Method B");
System.Threading.Thread.Sleep(500);
}
当然,我可以用方法初始化字符串点,但我不想在代码中造成混乱,并且这也不能在任何其他循环中完成(例如 for )。有什么想法可以解决这个问题,还是我太蠢了,无法正常思考?
提前致谢。
编辑:我已经更改了示例代码以使其更加实用。期望的输出应该是:
. Method A
. Method B
.. Method A
.. Method B
... Method A
... Method B
Method A
.... Method B
. Method A
.....Method B
等等等等。
您说过您不想将点保留在 Method 之外(在 Method 的类中),那么您必须从 Method 返回值,以便您至少可以稍后将其传递,从而保留其状态。
string Method(string dot = string.Empty)
{
if(dot == "...") return string.Empty;
else return dot + ".";
}
var result = Method(Method(Method(Method(Method(Method()))))) // etc...
编辑:
您编辑的问题并不会使您最初的问题更加实际。它仍然遇到同样的问题:您想要 X,但 C# 没有 X。请改用 C++ 或 VB.NET。
你的问题的答案
“在这种情况下是否可以只初始化一个变量一次?”
is 抱歉,没有!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)