2011-03-21 33 views
0

被稱爲可在此類中工作的類變量的構造函數。我如何在這個類中創建,我不能在構造函數中指定它們,但使用其他方法?如何更改類方法內的創建ref參數?

創建類:

CreatePackWindow createPackWindow = new CreatePackWindow(ref title, ref description); 
if (createPackWindow.ShowDialog() == true) 
{ 
    Console.WiteLine(title, description); 
} 

類CreatePackWindow:

public partial class CreatePackWindow : Window 
{ 
    public CreatePackWindow(ref string title, ref string description) 
    { 
     InitializeComponent(); 
    } 

    private void btnCreate_Click(object sender, RoutedEventArgs e) 
    { 
      ???title = tbPackName.Text; **// How to assign here?** 
      ???description = tbDescription.Text; **// How to assign here?** 
      this.DialogResult = true; 
      Close(); 
    } 
    //.......... 
} 

我明白,你需要創建一個指向冠軍描述和方法與他們一起工作,但做不知道該怎麼辦:(

請幫忙。 謝謝。

回答

3

您不能使用ref來創建字段充當指針; ref僅在通話過程中生效。做你想做的,也許:

  • 更新標題/描述正確(即window.Title =「富」等)
  • 使用包裝類的中介 - 即兩個用途保留引用到類標題/描述

後者可能會是最接近你想要的。即,具有一個

class Foo 
{ 
    public string Title{get;set;} 
    public string Description{get;set;} 
} 

public partial class CreatePackWindow : Window 
{ 
    private readonly Foo foo; 
    public CreatePackWindow(Foo foo) 
    { 
     InitializeComponent(); 
     this.Foo = foo; 
    } 

    private void btnCreate_Click(object sender, RoutedEventArgs e) 
    { 
      foo.Title = tbPackName.Text; 
      foo.Description = tbDescription.Text; 
      this.DialogResult = true; 
      Close(); 

    } 
} 

var foo = new Foo(); 
CreatePackWindow createPackWindow = new CreatePackWindow(foo); 
if (createPackWindow.ShowDialog() == true) 
{ 
    Console.WiteLine(foo.Title, foo.Description); 
} 
相關問題