使用return()获取多个值的问题

时间:2011-01-07 09:15:19

标签: c# asp.net return-value

我正在调用一个函数:

string judge1 = abs.getjud1(this.HiddenField4, this.TextBox3);

被调用的函数是:

public string getjud1(HiddenField HiddenField4, TextBox TextBox3)
{
    String dbDate = DateTime.ParseExact(TextBox3.Text, "dd/mm/yyyy", null).ToString("yyyy-mm-dd");

    try
    {
        OdbcConnection casetype = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=10.155.160.130;Database=testcase;User=root;Password=;Option=3;");
        casetype.Open();

        //*********to get jud1
        string jud1query = "select jname from testcase.orddetpabak,testcase.judge where orddetpabak.jud1 = judge.jcode and fil_no=? and orderdate=?;";

        //*********to get jud1
        OdbcCommand jud1cmd = new OdbcCommand(jud1query, casetype);
        jud1cmd.Parameters.AddWithValue("?", HiddenField4.Value);
        jud1cmd.Parameters.AddWithValue("?", dbDate);
        using (OdbcDataReader jud1MyReader = jud1cmd.ExecuteReader())
        {
            while (jud1MyReader.Read())
            {

                judge1 = jud1MyReader["jname"].ToString();
                Globals.jjj1= "J";
            }
        }

    }
    catch (Exception ep)
    { }

    return judge1;
}

我想返回 judge1 Globals.jjj1 ,是否可以这样做?如果是这样的话呢?

5 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

使用表示所需值的2个字符串值创建一个对象,然后返回该对象。

public MyCustomObject getjud1(HiddenField HiddenField4, TextBox TextBox3)

答案 2 :(得分:0)

您只能从方法中返回一个对象,但这里有两个选项:

  1. 创建一个包含两个字符串的新对象,并从该方法而不是字符串返回此对象。这样,您的复合对象将包含您想要的值。
  2. 创建一个标记为out的新参数,并在方法内设置该参数的值。您作为参数发送到方法的变量也将在方法之外更新。

答案 3 :(得分:0)

不太确定您的意思,但如果您想要返回多个值,则可以使用outref个关键字。

Out keyword

Ref keyword

void SomeFunction()
{
    int value1;
    int value2;
    value1 = SomeOtherFunction(out value2);
    //Value1 now equals 21, value2 equals 25.
    //You can use the same thing for strings.
}

int SomeOtherFunction(out int value2)
{
    value2 = 25;
    return 21;
}

答案 4 :(得分:0)

由于C#是面向对象的语言,为什么不简单地创建一个包含要返回的所有值的对象?这样,您只有一个变量用于return语句,但您可以访问所需的所有值。