如何可靠地将函数从 Main 方法移动到另一个 class
How to reliably move functions from the Main method to another class
我是 C# 初学者,所以现在我的大部分代码都在 Main() 方法中。我想让我的程序更加面向对象,所以我想将代码从 Main 方法可靠地移动到另一个 class(这样我也可以用其他程序来做)。
static void Main()
{
int xLentgh = 20;
int yLength = 20;
Map.MapBuilder(xLentgh,yLength);
int oldPositionX = 0;
int oldPositionY = 0;
int newPositionX = 0;
int newPositionY = 0;
if (oldPositionX == 0)
{
Map.WriteAt(".",newPositionX, newPositionY);
}
for (int i = 0; i < 100; i++)
{
ConsoleKeyInfo KeyStroke;
KeyStroke = Console.ReadKey();
switch (KeyStroke.Key)
{
case ConsoleKey.RightArrow:
{
if (newPositionX < xLentgh-1)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionX++;
}
break;
}
case ConsoleKey.LeftArrow:
{
if (newPositionX > 0)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionX--;
}
break;
}
case ConsoleKey.UpArrow:
{
if (newPositionY > 0)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionY--;
}
break;
}
case ConsoleKey.DownArrow:
{
if (newPositionY < yLength-1)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionY++;
}
break;
}
default: break;
}
Map.WriteAt(".",newPositionX, newPositionY);
Map.WriteAt(" ",oldPositionX, oldPositionY);
}
}
在这段代码中,我创建了一个“地图”,并在 for 循环中使用 switch 语句来“跟踪”光标的位置。如何在新的 class 中编写此代码?我不知道从哪里开始
您可以尝试通过在 bloc class Program {}
之外声明它来创建一个您想要命名的 class(我们称它为 RandomNameClass
)。
你应该有这样的东西:
namespace NameYouGaveToProject
{
class RandomNameClass
{
}
class Program
{
static void Main(string[] args)
{
// Your actual code here
}
}
}
上方或下方都可以,但如果您将所有代码都写在一个文件中,则更喜欢底部有 class Program
。
这是您的第一个自定义 class!现在尝试添加一些 functions in it. If you haven't learn about instantiating a class,只是不要忘记在函数的返回类型之前添加 public static
。
您可能拥有的示例:
namespace NameYouGaveToProject
{
class RandomNameClass
{
// Function that doesn't return anything, returns "void"
public static void SayHi()
{
Console.WriteLine("Hi!");
}
// Function that returns a string
public static string ReturnHi()
{
return "Hi!";
}
}
class Program
{
static void Main(string[] args)
{
// Your actual code here
}
}
}
然后您可以通过输入 class 的名称来调用它们,然后是一个点,然后是函数的名称和“()”(如果没有 parameters)函数(在我的示例中没有)。
语法为:
// Call the void function
RandomNameClass.SayHi();
// Call the function returning a string
string testVariable = RandomNameClass.ReturnHi();
请注意,您可以根据需要随时调用每个函数
瞧!您了解创建 class 并从此 class 调用函数的基础知识!接下来你应该学习的是如何正确地创建函数,然后实例化一个 class 并管理它的内容
我是 C# 初学者,所以现在我的大部分代码都在 Main() 方法中。我想让我的程序更加面向对象,所以我想将代码从 Main 方法可靠地移动到另一个 class(这样我也可以用其他程序来做)。
static void Main()
{
int xLentgh = 20;
int yLength = 20;
Map.MapBuilder(xLentgh,yLength);
int oldPositionX = 0;
int oldPositionY = 0;
int newPositionX = 0;
int newPositionY = 0;
if (oldPositionX == 0)
{
Map.WriteAt(".",newPositionX, newPositionY);
}
for (int i = 0; i < 100; i++)
{
ConsoleKeyInfo KeyStroke;
KeyStroke = Console.ReadKey();
switch (KeyStroke.Key)
{
case ConsoleKey.RightArrow:
{
if (newPositionX < xLentgh-1)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionX++;
}
break;
}
case ConsoleKey.LeftArrow:
{
if (newPositionX > 0)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionX--;
}
break;
}
case ConsoleKey.UpArrow:
{
if (newPositionY > 0)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionY--;
}
break;
}
case ConsoleKey.DownArrow:
{
if (newPositionY < yLength-1)
{
oldPositionX = newPositionX;
oldPositionY = newPositionY;
newPositionY++;
}
break;
}
default: break;
}
Map.WriteAt(".",newPositionX, newPositionY);
Map.WriteAt(" ",oldPositionX, oldPositionY);
}
}
在这段代码中,我创建了一个“地图”,并在 for 循环中使用 switch 语句来“跟踪”光标的位置。如何在新的 class 中编写此代码?我不知道从哪里开始
您可以尝试通过在 bloc class Program {}
之外声明它来创建一个您想要命名的 class(我们称它为 RandomNameClass
)。
你应该有这样的东西:
namespace NameYouGaveToProject
{
class RandomNameClass
{
}
class Program
{
static void Main(string[] args)
{
// Your actual code here
}
}
}
上方或下方都可以,但如果您将所有代码都写在一个文件中,则更喜欢底部有 class Program
。
这是您的第一个自定义 class!现在尝试添加一些 functions in it. If you haven't learn about instantiating a class,只是不要忘记在函数的返回类型之前添加 public static
。
您可能拥有的示例:
namespace NameYouGaveToProject
{
class RandomNameClass
{
// Function that doesn't return anything, returns "void"
public static void SayHi()
{
Console.WriteLine("Hi!");
}
// Function that returns a string
public static string ReturnHi()
{
return "Hi!";
}
}
class Program
{
static void Main(string[] args)
{
// Your actual code here
}
}
}
然后您可以通过输入 class 的名称来调用它们,然后是一个点,然后是函数的名称和“()”(如果没有 parameters)函数(在我的示例中没有)。
语法为:
// Call the void function
RandomNameClass.SayHi();
// Call the function returning a string
string testVariable = RandomNameClass.ReturnHi();
请注意,您可以根据需要随时调用每个函数
瞧!您了解创建 class 并从此 class 调用函数的基础知识!接下来你应该学习的是如何正确地创建函数,然后实例化一个 class 并管理它的内容