名称door在当前上下文中不存在
本文关键字:上下文 不存在 door 名称 | 更新日期: 2023-09-27 18:17:52
我正在编写一个小的控制台程序,它询问姓名和年龄,然后确定您的年龄是否足够继续。我尝试使用一个变量来确定这个人是否可以继续:
Bool door = true;
然后我想问那些因为年龄而被拒绝的人,他们是否想再填写一次。
if (door == false){
Console.WriteLine("Wilt u op nieuw uw leeftijd invullen?");
}
但是Visual Studio给了我以下错误:
错误CS0103名称"门"在当前上下文中不存在ConsoleApplication1
下面是完整的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Write("Hallo, wie ben jij? ");
string Name = Convert.ToString (Console.ReadLine());
Console.Write("Hallo " + Name + ", hoe oud ben jij? ");
int Age = Convert.ToInt32 (Console.ReadLine());
Console.ReadLine();
if (Age < 18) {
int remaining = 18 - Age;
Console.WriteLine("Helaas bent u nog geen achttien, U moet nog: "+remaining+" Jaar wachten.");
Console.ReadLine();
} else if (Age == 18) {
Console.WriteLine("U mag net door");
bool door = true;
Console.ReadLine();
} else {
Console.WriteLine("U bent door naar de volgende ronde");
bool door = true;
Console.ReadLine();
}
if (door == false)
{
Console.WriteLine("Wilt u op nieuw uw leeftijd invullen?");
}
}
}
}
每一对花括号{ ... }
在c#中定义了一个作用域。这意味着在该地区宣布的一切都是当地的。这意味着当你这样做的时候:
{
Console.WriteLine("U mag net door");
bool door = true;
Console.ReadLine();
}
(door
变量所在的区域)受到右花括号的限制,并且在其他任何地方都不存在。当你之后尝试使用它时,在if (door == false)
中,在一个叫做door
的变量不存在的地方,编译器基本上告诉你。
你需要事先声明你的变量,比如
bool door = false;
if (Age < 18){
//....
} else {
Console.WriteLine("U bent door naar de volgende ronde");
door = true;
Console.ReadLine();
}
您的"door"变量在if语句的作用域中声明。将它移出if语句并在main的顶部声明。
您在else
块中声明了door
变量。所以在你的if
块,它超出了范围。你能做的就是在两个块都能访问的范围内声明它。也就是说,直接在Main
方法
因为bool门是在通过{}确定的不同作用域中创建的,所以它在外部作用域中不存在。将变量移出作用域,它应该可以正常工作。