C# 错误 ;2 ;使用未分配的局部变量';Y';

C# 错误 ;2 ;使用未分配的局部变量';Y';,c#,.net,variables,local-variables,unassigned-variable,C#,.net,Variables,Local Variables,Unassigned Variable,我又一次遇到了一个错误,我不想让任何人出错,但我在这段代码中遇到了一个错误: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Input_Program { class Program { private static void Main() { char Y;

我又一次遇到了一个错误,我不想让任何人出错,但我在这段代码中遇到了一个错误:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Input_Program
{
    class Program
    {
       private static void Main()
        {

           char Y;
            char N;

           Console.WriteLine("Welcome to my bool program!");
           Console.WriteLine("Input a NON capital y or n when told to.");




            if(Y == 'y')
            {
                Console.WriteLine("Thank you,Please wait.....");
            }
        }
    }
}

谢谢你的回答

您的变量
char Y
在使用前未初始化。在声明时尝试提供默认值

编辑您似乎希望用户输入一些内容,并将其分配给变量Y。请尝试:

Y = Console.ReadKey().KeyChar;

变量
char Y
在使用前未初始化。在声明时尝试提供默认值

编辑您似乎希望用户输入一些内容,并将其分配给变量Y。请尝试:

Y = Console.ReadKey().KeyChar;
Y
是一个未赋值的局部变量。因此,您可以在
if
语句之前为其赋值以进行任何比较

Y = 'a';  // or some character 
Y
是一个未赋值的局部变量。因此,您可以在
if
语句之前为其赋值以进行任何比较

Y = 'a';  // or some character 

您没有将Y设置为任何值,也没有从键盘读取任何值。

您没有将Y设置为任何值,也没有从键盘读取任何值。

您可以显式将其设置为null

char Y = '<whatever_is_the_default_char>';
chary='';
这将消除编译器错误


编译器错误的根本原因是,当它将if条件nothing编译为已分配给Y时。上述内容被视为分配。

您可以显式将其设置为null

char Y = '<whatever_is_the_default_char>';
chary='';
这将消除编译器错误


编译器错误的根本原因是,当它编译if-conditional nothing时,它被分配给了Y。上面的内容被认为是一个分配。

Umm。。。Y从未被赋值?一般规则是,在声明变量时,应始终初始化它。所以你不应该写
chary,但改为写
chary='Y' >我用C语言输入输入,我用C++ C++编译…Y从未被赋值?一般规则是,在声明变量时,应始终初始化它。所以你不应该写
chary,但改为写
chary='Y' >我用C语言输入输入,我习惯C++语法,但如果它有值,那么我不能做if of the <代码>控制台。您可以使用
if-else
根据
y
的值执行操作。但如果它有值,则我无法执行if-else的
控制台。ReadKey()
允许用户输入一些内容,并将其分配给变量
y
,您可以使用
if else
根据
y
的值执行操作。如果
y
被分配
a
,那么
y='y'
将变为false,因此
if
中的语句将不会执行。如果
y
被分配
a
,则,然后
Y=='Y'
将变为false,因此
if
中的语句将不会执行。