如何在同一个文件中使用变量用于另一段代码

时间:2018-06-09 14:24:03

标签: c#

我正在编写一些代码,现在我已经遇到了错误

string getCode(string code)
{
    int count = code.Length;
    if (count % 2 == 0)
    {
        string error = "no";
    }
    else
    {
        string error = "yes";
        string error_message = "There is something wrong with the code. Program.cs - line 23";
    }

    if (error == "yes")
        return null;

    return error;
}

好吧,现在我在if语句中设置变量error。如果我后来说if (error == "yes")没有用,我会这样做。它给了我错误the name 'error' does not exist in the current content 我现在已经在互联网上搜索了15-20分钟。尝试了很多修复和示例。使用全局变量甚至尝试为我的变量创建另一个类并从那里读取变量。这工作,但后来我不能再设置变量了。或者我只是不知道该怎么做。你能帮我么?我会非常感激的!

由于

5 个答案:

答案 0 :(得分:4)

您应该将error变量声明在if的范围之外,如下所示:

string error = null;
if (count % 2 == 0)
{
    error = "no";
}
else
{
    error = "yes";
    string error_message = "There is something wrong with the code. Program.cs - line 23";
}

if (error == "yes")
    return null;

这样做,您可以在if的块中或else的块中访问此变量,或者更广泛地说在所有范围内,这些范围将包含在方法{{1}的范围内}}

旁注: getCode只能在error_message的块中使用,您只需声明一个变量并为其赋值。您可能还必须在else声明旁边移动此声明。

答案 1 :(得分:0)

您必须声明范围之外的变量才能被整个代码访问, 像

/account/register

答案 2 :(得分:0)

您可以通过创建一个类来创建变量 global ,然后在需要使用它时调用该类来创建类,如下所示:

public static class Globals
{
    public static String error = "yes"; 
}

您可以在需要时使用

添加更多变量
global.error

答案 3 :(得分:0)

将您的代码更改为:

string getCode(string code)
        {
            int count = code.Length;
            string error = "";
            if (count % 2 == 0)
            {
                error = "no";
            }
            else
            {
                error = "yes";
                string error_message = "There is something wrong with the code. Program.cs - line 23";
            }

            if (error == "yes")
            return null;
        }

您需要知道的是,如果在范围内声明变量,则仅在该范围内可见。 大括号定义一个范围,以便您的错误变量在if true分支中可见,而else分支是两个在不同范围内具有相同名称的不同变量。

更改的代码将错误变量声明移动到包含方法范围(getCode)中,使其可以访问。

答案 4 :(得分:0)

        string getCode(string code)
        {
            int count = code.Length;
            string error = null;
            if (count % 2 == 0)
            {
                error = "no";
            }
            else
            {
                error = "yes";                    
            }

            if (error == "yes")
                return "something that you intended to return when there is an error";
            else
                return "something that you intended to return when there is no error";
        }