如何在类方法中更改创建-ref参数?

时间:2011-03-21 06:59:18

标签: c# .net wpf 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();
     }
     //..........
}

我知道您需要创建指向标题描述的指针以及使用它们的方法,但不知道如何操作:(

请帮忙。 谢谢。

1 个答案:

答案 0 :(得分:3)

您无法使用ref字段作为指针; ref仅在通话期间有效。要做你想做的事,也许:

  • 正确更新标题/说明(即window.Title =“foo”等)
  • 使用包装类作为中介 - 即两个用途保持对带有标题/描述的类的引用

后者可能是最接近你想要的。即有一个

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);
 }