C是否可以在另一个函数中使用特定函数中的变量

C# 是否可以在另一个函数中使用特定函数中的变量

问题描述

基本上,我想要输入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’这个名称。我理解这个错误消息,但不知道如何解决。

这段代码是从我的原始代码简化而来,但本质上做的是相同的事情(我的原始代码已经超出可读性)。

我确定有一个超级简单的解决方法,但新手总要有所学习,而我找不到任何我能理解的解决方案。

解决方案

只需将这些变量作为方法结果返回即可。如果您需要两个变量,可以使用元组。

 private static (bool, int) Input()
 {
     //...
     bool isInt = int.TryParse(limitString, out limitInt);
     // ...
     return (isInt, limitInt);
 }

然后,在你的调用方法中(例如,你的示例中的 Main)将 result 也赋值为元组:

 static void Main()
 {
    var (isInt, limitInt) = Input();
    if (isInt)
        // ...
    else
        // ...
 }

更多关于元组的信息可以在官方文档中找到。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程