我最近在C ++中使用两个类之后尝试学习C#,因此我理解了有关OOP如何工作的最基本概念。至于我的问题,我一直在尝试使用Console.ReadLine()将用户输入的字符串分配给主类中的类的公共字符串变量;
不幸的是,我一直收到一条错误,指出“句柄无效”。因为我不熟悉C#,所以我不完全理解如何纠正这一点,也不知道为什么会这样。
以下是我的代码部分:
编写类的代码;
public class AAA
{
public string A1;
public string A2;
}
实例化课程:
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
AAA aaa;
// The next portions of code are found within this class.
protected override void Initialize()
{
// TODO: Add your initialization logic here
aaa = new AAA( );
base.Initialize();
}
在更新部分,尝试将键盘输入分配给AAA类中的变量A1和A2:
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your update logic here
Console.WriteLine("Enter your first name" + Environment.NewLine);
aaa.A1 = Console.ReadLine();
Console.WriteLine(Environment.NewLine + "Enter your last name" + Environment.NewLine);
aaa.A2 = Console.ReadLine();
Console.WriteLine(Environment.NewLine + "Your name is:" + Environment.NewLine + aaa.A1 + " " + aaa.A2);
Console.Read( );
base.Update(gameTime);
}
现在,上述情况可能已经变成了垃圾。如果是这样,我可以尝试将整个代码粘贴在一个回复中(如果这对你们所有人来说都更容易,能够查看我的代码)。但是,如果您对此有任何其他信息,请告诉我。
答案 0 :(得分:1)
我看到你正在使用XNA,因为你是从Microsoft.Xna.Framework.Game
派生的。如果您在尝试从控制台读取时出现“无效句柄”错误,我不会感到惊讶,因为没有用于XNA游戏的控制台。
this question的提问者表示他的解决方案是“[打开] xna游戏属性的控制台输出”。
从视频游戏的控制台阅读是没有意义的,所以我认为正确的答案是:如果你想制作一个控制台程序,只需制作一个简单的'C#控制台应用程序。如果你想制作视频游戏,请使用XNA。