2016-08-02 329 views
1
using System; 

namespace Task2 
{ 
    class BirthDate 
    { 
     static void Main(string[] date) 
     { 
      var Month; 
      Console.WriteLine("Please enter your month of birth:"); 
      Month = Console.ReadLine(); 

      var Day; 
      Console.WriteLine("Please enter your day of birth:"); 
      Day = Console.ReadLine(); 

      Console.WriteLine("Your birth month is {0}, on day {1}", Month, Day); 


      Console.ReadLine(); 
     } 
    } 
} 

当我尝试编译时,我从变量中得到两个错误,我不知道如何解决它。隐式类型变量必须初始化

+0

你会得到什么错误? – Julian

+0

使用'String',对每个人来说都更容易。这是一种强类型语言,所以强类型变量plz。 – Nyerguds

回答

3

当你把刚刚

var Day; 

编译器不能弄清楚Day变量的实际类型;将其更改为

var Day = Console.ReadLine(); 

和已经知道Console.ReadLine()回报String,编译器可以很容易地检测出DayString类型:

Console.WriteLine("Please enter your month of birth:"); 
var Month = Console.ReadLine(); 

Console.WriteLine("Please enter your day of birth:"); 
var Day = Console.ReadLine(); 
0

你不能没有初始化使用隐式类型的变量。您应该初始化变量以让编译器推断变量的类型。

当在代码上查看时,不要使用隐式类型变量。

var iDontKnowWhatTypeOfIt = SomeMethod(); // not good 

var itIsObviousThatImTimeSpan = TimeSpan.FromSeconds(5); // OK 
0

您尚未定义月份和日期是哪种类型。 当使用“var”时,您必须根据定义为其设置一个值。 修复你的代码最简单的方法是简单地写VAR前控制台读取这样:

using System; 

namespace Task2 
{ 
    class BirthDate 
    { 
     static void Main(string[] date) 
     { 
      Console.WriteLine("Please enter your month of birth:"); 
      var Month = Console.ReadLine(); 
      Console.WriteLine("Please enter your day of birth:"); 
      var Day = Console.ReadLine(); 
      Console.WriteLine("Your birth month is {0}, on day {1}", Month, Day); 
      Console.ReadLine(); 
     } 
    } 
} 
0

要么让编译器分配

Console.WriteLine("Please enter your month of birth:"); 
var Month = Console.ReadLine(); 

推断类型或指定类型明确

string Month; 
Console.WriteLine("Please enter your month of birth:"); 
Month = Console.ReadLine();