首页 > 解决方案 > 局部变量“person”在声明之前不能使用

问题描述

我正在做这个学校练习,我必须填补空白以完成代码。这就是我所拥有的:

using System;

class Program {
  public static void Main() {
    var person;
    person = Tuple.Create("John", "Doe");
    string s = "Hello, "+person.Item1 + ", " + person.Item2;
  }
}

当我运行它时,我收到以下错误:源程序错误:

(5,5):错误 CS0818:隐式类型的局部变量声明器必须包含初始化程序 (6,5):错误 CS0841:在声明之前不能使用局部变量“person” (7,26):错误 CS0841:局部变量“person”在声明之前不能使用

这是我可以编辑的空白。

 using System;

 class Program {   public static void Main() {
     ______ person;
     person = ________________________________
     _______ s = "Hello, "+person._____ + ", " + person.______;   } }

标签: c#variableslocal

解决方案


那里提到的错误实际上与隐式类型声明规则有关。
使用声明变量时,var您应该始终在右侧有一些东西,例如:

var i = 10; // var is internally converting to `int` by Compiler

因为编译器var从右侧操作确定类型,在这种情况下,它将与以下内容相同:

int i = 10;

因此,特别是对于您的情况,为了使代码编译成功合并行56,如下所示:

var person = Tuple.Create("John", "Doe");
string s = "Hello, " + person.Item1 + ", " + person.Item2;

推荐阅读