0

这是我课堂上的方法

public void tostringmeth(string concat)
    {
      // string concat;
        string markstring;
        string matricstring;

        markstring = "";
        matricstring = "";

        Mark.ToString(markstring);
        Matric.ToString(matricstring);


       concat= FirstName + " " + SecondName + " " + DoB+ " " + Course+ " " + markstring + " " + matricstring ;

        return;

本质上我需要将“concat”变量返回到主窗体,以便我可以使用它(它只在标签中显示它)。我将如何去访问它?由于某种原因,将其声明为公共字符串会引发错误。编辑:我现在明白了,这是一个非常明显和愚蠢的错误(公共字符串不是无效的!)。感谢大家!

4

5 回答 5

4
public string tostringmeth(string concat)
{
    // do your thing

    return concat;
}

并以您的形式:

MyLabel.Text = tostringmeth(myConcatString);
于 2012-10-19T23:32:24.500 回答
1

他们是两种简单的方法。第一个我认为是最简单的...第二个也很简单:)

public string stVar; // It will not give error. because it is not in any function 
                   //it is in the scope of class. In this way no need to return

修饰符(如公共/私有等)不能与方法(函数)的变量一起使用。它们可以很容易地与类成员一起使用(类变量,在任何函数括号中声明)

public void tostringmeth(string concat)
{
  // string concat;
    string markstring;
    string matricstring;

    markstring = "";
    matricstring = "";

    Mark.ToString(markstring);
    Matric.ToString(matricstring);


   stVar= FirstName + " " + SecondName + " " + DoB+ " " + Course+ " " + markstring + " " + matricstring ;

}

第二种方式已经告诉

public string tostringmeth(string concat)
{
  // string concat;
    string markstring;
    string matricstring;

    markstring = "";
    matricstring = "";

    Mark.ToString(markstring);
    Matric.ToString(matricstring);


   concat= FirstName + " " + SecondName + " " + DoB+ " " + Course+ " " + markstring + " " + matricstring ;
  return concat;
}
于 2012-10-19T23:50:39.587 回答
1

您将 concat 字段传递给您的方法,但不执行它包含的值。我认为没有理由将其传递给方法。我会做这样的事情:

public string tostringmeth() 
{ 
    string markstring; 
    string matricstring; 

    markstring = ""; 
    matricstring = ""; 

    Mark.ToString(markstring); 
    Matric.ToString(matricstring); 


   return FirstName + " " + SecondName + " " + DoB+ " " + Course+ " " + markstring + " " + matricstring ; 

}
于 2012-10-19T23:36:28.050 回答
1

两个选项:
第一,更好的选项,返回所需的字符串值。(我稍微简化了方法逻辑)

  public string tostringmeth()    
  {    
       return FirstName + " " + SecondName + " " + 
             DoB + " " + Course + " " +
             Mark.ToString(string.empty) + " " + 
             Matric.ToString(string.empty);
  }

二、修改方法入参(必须将方法参数声明为ref)

  public void tostringmeth(ref string concat)    
  {    
       concat = FirstName + " " + SecondName + " " + 
             DoB + " " + Course + " " +
             Mark.ToString(string.empty) + " " + 
             Matric.ToString(string.empty);
  }
于 2012-10-19T23:41:21.673 回答
0

返回某些内容的函数必须是非 void 类型。

// void function cant return anything
public void tostringmeth(string inputParameter)
{
    return; // returns nothing 
}


// string function can return string
public string tostringmeth(string inputParameter)
{
     // string function can return string

     string outputParameter = something;
     return outputParameter; // returns variable value
}
于 2012-10-20T00:22:14.900 回答