提问人:Doully 提问时间:10/21/2023 更新时间:10/21/2023 访问量:47
是否可以在另一个函数中使用特定函数中的变量
Is it possible to use a variable from a specific function in another function
问:
基本上我想输入 limitInput,并在尝试解析它后,在另一个函数中使用 bool isInt 和 limitInputInt
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
internal class Program
{
static void Input()
{
Console.WriteLine("Integer X?");
var limitString = Console.ReadLine();
int limitInt;
bool isInt = int.TryParse(limitString, out limitInt);
Console.WriteLine(isInt);
}
static void Main(string[] args)
{
Input();
if (isInt = true)
{
Console.WriteLine(limitInt);
}
else if(isInt = false)
{
Console.WriteLine("this is not an integer");
}
}
}
}
我想输入一个数字作为变量 limitString,尝试解析它,然后在不同的函数中使用 limitInt 和 isInt。
每当我运行它时,我都会得到 CS0103 名称“isInt”在当前上下文中不存在 我确实理解此错误消息,但我不知道如何解决它
这段代码是从我的原始代码简化而来的,但本质上是做同样的事情(我的原始代码是不可读的)
我确信有一个超级简单的修复程序,但新手必须以某种方式学习,而我找不到任何我能理解的解决方案
对于任何感兴趣的人,我正在用 c# 制作一个数字猜谜游戏 我以前用python做过一个,但想学习c#
答:
2赞
Auditive
10/21/2023
#1
只需将该变量作为方法结果返回即可。如果您需要 2 个变量,您可以使用元组:
private static (bool, int) Input()
{
//...
bool isInt = int.TryParse(limitString, out limitInt);
// ...
return (isInt, limitInt);
}
然后,在调用方法(在您的示例中)将结果也分配为元组:Main
static void Main()
{
var (isInt, limitInt) = Input();
if (isInt)
// ...
else
// ...
}
有关元组的更多信息,请参阅官方文档。
评论