using System;namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
string country;
string language;
Console.WriteLine("请输入您的国家");
country=Console.ReadLine();
switch(country)
{
case "China":
language="汉语";
break;
case "USA":
language="英语";
break;
case "France":
language="法语";
break;
}
//Console.WriteLine("您的国家是{0},语言是{1}",country,language);
Console.WriteLine(country);
}
}
}

解决方案 »

  1.   

    string language = null;编译器检查到你这个 language 没有初值,所以不让你继续
    这是一个很好的防止错误的检查功能
      

  2.   

    因为如果你的 switch(country) 不符合任何一项条件的话,你的 language 的值是什么呢,系统无法判断,所以报错
      

  3.   

    你声明了变量language,可是在你的程序中可能这个变量不会被赋值,所以编译器报了这个警告.
    你一定要确保这个变量在声明后一定有过赋值行为.
      

  4.   

    我在switch中选择的时候可以赋值啊!
      

  5.   

    string country="";
    string language="";
    每次声明变量的时候最好都给个初始值。避免不必要的麻烦
      

  6.   

    可是系统不知道啊,万一你的 country 里读出来的值不在你的 switch 列表中呢?
      

  7.   

    switch 加defulat 给language赋上默认值
      

  8.   

    或者把你的 switch 改成这样
    switch(country)
    {
    case "China":
    language="汉语";
    break;
    case "USA":
    language="英语";
    break;
    case "France":
    language="法语";
    break;
    default:
    language="";
    break;
    }
    这样也行
      

  9.   

    一般定义都要加个初始值.
    string country="";
    string language="";
      

  10.   

    default:
    language="未知";
    break;
      

  11.   

    在程序中声明的变量,一定要确保这个变量在声明之后一定要有赋值行为。
    或者这样写:switch(country)
    {
    case "China":
    language="汉语";
    break;
    case "USA":
    language="英语";
    break;
    case "France":
    language="法语";
    break;
    default:
    language="";
    break;
    }