public class MyClass
{
private string _parameter;
public MyClass(string parameter) { _parameter = parameter; }
public MyClass() { }
public void MyMethod1() { if (_parameter != null) Console.Write(_parameter); }
private void MyMethod2(string parameter) { Console.Write(parameter); }
public void MyMethod2(object parameter) { MyMethod2((string)parameter); }
public string MyMethod3(string parameter) { return "參數值為:" + parameter; }
public string MyMutilParameters(string p1, string p2) { return "參數1和參數2連接結果為:" + p1 + p2; }
}
在建構函式存入參數,執行緒呼叫無參數方法:
private string myParameter = "ParameterValue\n";
private void button1_Click(object sender, EventArgs e)
{
MyClass instance = new MyClass(myParameter);
new Thread(new ThreadStart(instance.MyMethod1)).Start();
}
缺點:破壞封裝,需額外欄位儲存參數。
後續文章將介紹 ParameterizedThreadStart、委托包裝等更優雅的做法。