Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在第16行引发异常 使用系统; 名称空间Rndom { 类主类 { 公共静态void Main(字符串[]args) { 开始: Random obj=新的Random(); int num1=obj.Next(1,9); int num2=obj.Next(10,21); WriteLine(“两个唯一数字的总和\n”+num1+“”+num2+“”+(num1+num2)); char ch; Console.WriteLine(“如果要继续,请按y”); ch=Convert.ToChar(Console.ReadKey());//_C#_Unity3d - Fatal编程技术网

C# 在第16行引发异常 使用系统; 名称空间Rndom { 类主类 { 公共静态void Main(字符串[]args) { 开始: Random obj=新的Random(); int num1=obj.Next(1,9); int num2=obj.Next(10,21); WriteLine(“两个唯一数字的总和\n”+num1+“”+num2+“”+(num1+num2)); char ch; Console.WriteLine(“如果要继续,请按y”); ch=Convert.ToChar(Console.ReadKey());//

C# 在第16行引发异常 使用系统; 名称空间Rndom { 类主类 { 公共静态void Main(字符串[]args) { 开始: Random obj=新的Random(); int num1=obj.Next(1,9); int num2=obj.Next(10,21); WriteLine(“两个唯一数字的总和\n”+num1+“”+num2+“”+(num1+num2)); char ch; Console.WriteLine(“如果要继续,请按y”); ch=Convert.ToChar(Console.ReadKey());//,c#,unity3d,C#,Unity3d,而不是 using System; namespace Rndom { class MainClass { public static void Main(string[] args) { start: Random obj = new Random(); int num1 = obj.Next(1, 9); int num2 = obj.Next(1

而不是

using System;

namespace Rndom
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            start:
            Random obj = new Random();
            int num1 = obj.Next(1, 9);
            int num2 = obj.Next(10,21);
            Console.WriteLine("sum of two unique numbers\n"+num1+" "+num2+"  "+(num1+num2));
            char ch;
            Console.WriteLine("If wannt to continue, press y");
            ch = Convert.ToChar(Console.ReadKey()); // <- I have exception thrown here
            if(ch=='y')
            {
                goto start;
            }
            else
            {
                Console.WriteLine("press any key to terminate");
                Console.ReadKey();
            }

        }

    }
}
你应该把它当作

ch = Convert.ToChar(Console.ReadKey());

由于由
Console.ReadKey()
返回的
ConsoleKeyInfo
实例不能直接转换为
char

第16行在哪里?这与Unity3D有什么关系?还会引发什么异常?
ch=Console.ReadKey().KeyChar;
而不是
ch=Convert.ToChar(Console.ReadKey())
转换的对象是什么类型的?不确定这与Unity有什么关系,但是当你发现自己在使用
Main
函数、
Console.WriteLine
Console.ReadKey
时,你应该知道你没有正确使用Unity。谢谢你,先生!但是我对c非常陌生,你能解释一下吗关于您的正确答案!ConsoleKeyInfo实例可以转换为整数或任何其他类型吗?@Adarsh Kumar:不;
ConsoleKeyInfo
不能通过
Convert.ToInt32
转换为整数-
int
;通常我们使用
Convert
与实现
IConvertible
接口的类型一起使用(几乎)所有其他情况下,您应该在casech=Convert.ToChar(Console.ReadLine());//我使用了此代码而不是您的代码,它工作得非常好!@Adarsh Kumar:
ch=Convert.ToChar(Console.ReadLine());
与此不同:您正在阅读一行(例如
“bla bla bla bla”
)等待按enter键(这将开始一个新行),然后尝试将该行(
“bla bla”
)共转换为char,此时会出现
格式异常
,消息为
“字符串必须正好有一个字符长”。
。如果您喜欢
Console.ReadLine()
可以这样说:
ch=Console.ReadLine()[0]
或者检查输入的
Length==1
ch = Console.ReadKey().KeyChar;