我正在尝试创建一个显示消息的循环,然后它会增加文本的X或Y位置并再次显示它。我在下面尝试了这个但是它不起作用:(请记住我在应用程序中有其他代码但是在下面的代码中我希望字符串“helo”从左到右多次写在屏幕上命令窗口。目前所有代码都在相同的位置闪烁)
class Program
{
static void Main(string[] args)
{
Menu();
}
static void Menu()
{
while(true)
{
PrintToScreendynamic(1, 1, "helo");
{
}
static void PrintToScreendynamic(int x, int y, string text)
{
y++;
Console.SetCursorPosition(x, y);
Console.Write(text);
}
}
答案 0 :(得分:0)
您的方法的int参数作为值类型传递,这意味着在方法 PrintToScreendynamic 上保存x和y值的变量具有本地仅限该方法的值范围。因此,下次调用方法时,这些值会丢失,因为您重新发送1和1.您需要将增量调用移动到外部方法,因此它会获取集并存储在内存中,然后将其发送到内部你创建的方法。
class Program
{
static void Main(string[] args)
{
Menu();
}
static void Menu()
{
int x = 1;
int y = 1;
while(true)
{
PrintToScreendynamic(x, y, "helo");
y++;
}
}
static void PrintToScreendynamic(int x, int y, string text)
{
Console.SetCursorPosition(x, y);
Console.Write(text);
}
}
您可能希望在每个周期之间睡眠过程,以使效果更加明显。
为了更好地理解值类型参数: https://msdn.microsoft.com/en-us/library/9t0za5es.aspx