C# 困难在于;IOException Unhandled“未处理的异常”; 我最近一直在尝试在C++中有两个类后学习C语言,因此我了解OOP如何工作的最基本的概念。至于我的问题,我一直在尝试使用Console.ReadLine()在主类中将用户输入的字符串分配给类的公共字符串变量

C# 困难在于;IOException Unhandled“未处理的异常”; 我最近一直在尝试在C++中有两个类后学习C语言,因此我了解OOP如何工作的最基本的概念。至于我的问题,我一直在尝试使用Console.ReadLine()在主类中将用户输入的字符串分配给类的公共字符串变量,c#,keyboard,user-input,C#,Keyboard,User Input,不幸的是,我一直收到一个错误,声明“句柄无效”。因为我对C#不太熟悉,所以我不完全理解如何纠正这一点,也不完全理解为什么会发生这种情况 以下是代码部分,其中我: 编写一个类的代码 public class AAA { public string A1; public string A2; } 实例化类: public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics;

不幸的是,我一直收到一个错误,声明“句柄无效”。因为我对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);
    }

现在,上述情况可能已经变成了垃圾。如果是这样的话,我可以尝试将整个代码粘贴在一个回复中(如果这对你们大家来说更容易的话,可以查看我的代码)。但是,请告诉我您是否需要关于此的任何其他信息。

我看到您正在使用XNA,因为您是从Microsoft.XNA.Framework.Game派生而来的。如果在尝试从控制台读取时出现“无效句柄”错误,我不会感到惊讶,因为XNA游戏没有控制台

的询问者表示,他的解决方案是“在xna游戏属性上[打开]控制台输出”


在游戏机上阅读是没有意义的,所以我认为正确的答案是:如果你想制作一个控制台程序,只需制作一个普通的C#控制台应用程序。如果您想制作视频游戏,请使用XNA。

可能是因为XNA游戏没有控制台。表示需要在XNA游戏属性中打开控制台输出。为什么你想使用游戏输入控制台是另一个完整的问题。@ JONATONE ReNHART我想我在学习键盘输入时(我没找到C++相当于CIN),把程序的窗口“控制台”误认为是程序的窗口。那么换个说法,如何从键盘输入字符串呢?所有其他指南和问答网站(包括我为XNA4.0买的一本书)只告诉我如何检查钥匙的状态。啊,是的,我做了。很抱歉,错误地点击了enter-u-我认为正确的答案是:如果你想制作一个控制台程序,只需制作一个控制台应用程序。如果你想做一个电子游戏,使用XNA。哦,哇。那么,现在我觉得很尴尬。我要试一试。顺便说一句,谢谢你的帮助,虽然这对我来说是个小小的错误。