2012-07-18 119 views
-3

如何從數據類型從字符串更改爲var?C#字符串到var數據類型

實施例:

private void button1_Click(object sender, EventArgs e) 
    { 
     work("checkBox1"); 
    } 

    public void work(string check) 
    { 

    string number = "1"; 
      if (number == "1") 
      { 
       check.Checked = true; 
       MessageBox.Show("True"); 
      } 
      else 
      { 
       check.Checked = false; 
       MessageBox.Show("False"); 
      } 

    } 

如何解決這個問題

'字符串' 中不包含關於 '經過' 的定義和沒有擴展 方法 '經過' 接受

但我想工作按鈕插入複選框名稱

+2

你想從字符串轉換爲var ... erm wha! – 2012-07-18 15:34:05

+2

c#中沒有'var'數據類型。 'var'關鍵字指示編譯器推斷局部變量的類型,但一旦推斷出類型,它就是固定的。例如,這不會編譯:'var x =「Hello」; Console.WriteLine(X); x = 4; Console.WriteLine(x);'第三條語句導致編譯器錯誤「不能將類型'int'隱式轉換爲'string'」。 – phoog 2012-07-18 16:27:00

回答

8

變化..

public void work(string check) 

...到...

public void work(CheckBox check) 

然後調用它像這樣:

work(checkBox1); 

可以用繩子工作,然後找到通過Form.Controls進行控制,但使用CheckBox本身會更容易。


爲了滿足挑剔的@daveL,你不能有一個var類型作爲方法的參數。要使代碼正常工作,您可以使用CheckBoxdynamic

對於認爲這是可能的世界的@ daveL's,這裏有一些關於Implicitly Typed Local Variables的文檔。

+0

打敗我吧。 +1。好答案。 – David 2012-07-18 15:33:00

+0

我會提供'work'的代碼,但它看起來像填充代碼,因爲它對我來說沒有意義。 – 2012-07-18 15:35:36

+0

這很好,但你如何從字符串轉換爲var? – 2012-07-18 15:37:27

1

最簡單的方法是將實際引用傳遞給複選框,而不僅僅是複選框的名稱。

private void button1_Click(object sender, EventArgs e) 
{ 
    work(checkBox1); 
} 

public void work(CheckBox check) 
{ 

string number = "1"; 
     if (number == "1") 
     { 
      check.Checked = true; 
      MessageBox.Show("True"); 
     } 
     else 
     { 
      check.Checked = false; 
      MessageBox.Show("False"); 
     } 

}