c# - 局部变量“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.______; } }
解决方案
那里提到的错误实际上与隐式类型声明规则有关。
使用声明变量时,var
您应该始终在右侧有一些东西,例如:
var i = 10; // var is internally converting to `int` by Compiler
因为编译器var
从右侧操作确定类型,在这种情况下,它将与以下内容相同:
int i = 10;
因此,特别是对于您的情况,为了使代码编译成功合并行5
和6
,如下所示:
var person = Tuple.Create("John", "Doe");
string s = "Hello, " + person.Item1 + ", " + person.Item2;
推荐阅读
- python - 使用 jinja2 烧瓶迭代下一个列表
- amazon-web-services - 一个桶 - 多个主题 Amazon S3、SNS
- php - 显示用于使用 WooCommerce 构建电子商务商店的动态简码?
- php - How can I add link to json_encode?
- python - 在另一个 Jupyter 笔记本中运行时如何抑制某些输出
- c# - 无法使用通过 DI 提供的 ILogger 实例
- django - 如何断言用户在 django.test.TestCase 中注销?
- php - 用相对 URL 替换绝对 URL 的正则表达式
- docker - 如何在根文件系统上创建一个设置了严格时间的 Docker 容器?
- javascript - React - 从 API 返回数据