-6

ではなくテキストとして値を返すにはどうすればよいvoidですか?

例:

private void button1_Click(object sender, EventArgs e)
{
    label1.Text = myvoid("foo", true);
    // Error: Cannot implicitly convert type void to string
}

public void myvoid(string key , bool data)
{
    if (data == true)
    {
        string a = key + " = true";
        MessageBox.Show(a); // How can I export this value to labe1.Text?
    }
    else
    {
        string a = key + " = false";
        MessageBox.Show(a); // How can I export this value to labe1.Text?
    }
}

aメッセージ ボックスを表示する代わりに、void を返すメソッドから値を割り当てて、それを に適用するにはどうすればよいlabel1.Textですか?

4

6 に答える 6

8

使用する:

public string myvoid(string key, bool data)
{
    return key + " = " + data;
}

また、メソッドはmyvoid実際に値を返すため、これ以上呼び出す必要はありません。のようなものFormatValueが良いでしょう。

于 2012-07-19T16:53:46.947 に答える
5
private void button1_Click(object sender, EventArgs e)
{
    label1.Text = myvoid("foo", true);
}

public string myvoid(string key , bool data)
{
    if (data)       
        return key + " = true";         
    else       
        return  key + " = false"; 
}

オースティンがコメントで述べたように、これはよりクリーンになります

public string myvoid(string key , bool data)
{
   return string.Format("{0} = {1}", key, data);
}
于 2012-07-19T16:53:16.210 に答える
3

戻り値の型を文字列に変更します。

 public string myvoid(string key, bool data)
 {
    string a = string.Empty;
    if (data == true)
    {
        a = key + " = true";
        MessageBox.Show(a); // How can I export this value to labe1.Text?
    }
    else
    {
        a = key + " = false";
        MessageBox.Show(a); // How can I export this value to labe1.Text?
    }
    return a;
 }
于 2012-07-19T16:51:32.233 に答える
1

メソッドの戻り値の型を文字列に変更する必要があります。

このような:public string myvoid(string key , bool data)

そして、文字列 a を返します。

このような:

return a;
于 2012-07-19T16:54:39.967 に答える
0

http://msdn.microsoft.com/en-us/library/t3c3bfhx(v=vs.80).aspxを確認してください。

本当に a を使用したい場合は、述語をvoid使用できます。out

于 2012-07-19T16:55:35.740 に答える