我目前正在学习C#编程,我不太了解。我只掌握了关于这个程序的基本知识,所以当你回答我的时候,如果你向我详细解释这些代码,我将非常感激。
我们把字母'a'。我想使用For循环使字母每2秒向右移动一次。为了让它工作2秒我使用代码:System.Threading.Thread.Sleep(TimeSpan.FromSeconds(2));
此代码将包含在循环内。
我的问题是,我不知道将'a'替换为'space',并且在空格之后,字母'a'将显示出来。
像这样:
a
2秒后,我想让'a'向右移动:
a
我正在搜索可以用'空格'替换字母的代码,并在空格后添加字母'a'。 代码应该在For循环中运行10次,使字母向右移动10次。 请注意,我不想删除整个输出,只删除字母'a'。
我真的不知道如何更好地解释我的问题。 提前谢谢。
编辑:我正在使用Microsoft Visual C#2010 Express。控制台应用。
static void Main(string[] args)
(可能有帮助)
答案 0 :(得分:1)
尝试此操作(您可以使用给定的偏移量和位置调用此方法)。您可以负责跟踪当前的非空位置:
public void Move(char[] input, int position, int offset, int direction) {
int newPosition;
if (direction == 0) {
//Move Left
newPosition = position - offset;
}
else {
//Move Right
newPosition = position + offset;
}
if (newPosition < 0 || newPosition > input.Length-1) {
throw new ArgumentException("Offset is invalid", "offset");
}
input[newPosition] = input[position];
input[position] = ' ';
}
答案 1 :(得分:0)
我不知道你为什么需要这个,但这里是代码:
static void Main(string[] args)
{
string a = "a";
for (int i = 0; i < 100; i++)
{
Console.Clear();
Console.Write(a);
a = " " + a;
System.Threading.Thread.Sleep(100);
}
}
希望它有所帮助。
答案 2 :(得分:0)
您可以像这样使用计时器:
Console.Write("a");
Timer timer = new Timer(200);
timer.Elapsed += (object sender, ElapsedEventArgs e) =>
{
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
Console.Write(" a");
};
timer.Start();
答案 3 :(得分:0)
这里试试这个
string sampleString="a";
Console.WriteLine(sampleString);
for(int i=0;i<10;i++)
{
Thread.Sleep(2000)// 2 seconds sleep
Console.SetCursorPosition(0, Console.CursorTop -1);
sampleString=" "+sampleString;
Console.WriteLine(sampleString);
}