【发布时间】:2015-07-08 12:59:17
【问题描述】:
我有一个主窗体,它调用一个较小的窗体。在主表单中,我有一个名为_dataReady 的bool,它设置为false,但是较小表单的目的是检查一些事情并查看数据是否准备好,在这种情况下它设置@ 987654324@转true。
这是我的问题:我使用 (ref bool _dataReady) 等输入参数调用迷你表单,但问题是我无法在构造函数块之外访问它。
我尝试创建一个private bool 并将ref 设置为此,但在更改private bool 的状态后,ref 没有进行更改,这与面向对象编程的工作方式不同。
这是我的一些代码:
//这就是我在主窗体中调用我的迷你表单的方式
new FrmAccounting(MyTextBox1.Text.Trim().Replace(",", "").ToInt32(),ref _dataReady).ShowDialog();
这是迷你表单的构造函数和代码:
public FrmAccounting(decimal Price,ref bool _dataReady)
{
InitializeComponent();
dataReady=_dataReady;
}
private bool dataReady;
但是,将表单 (dataReady) 中的 private bool 设置为 true 并不会更改 ref(再次与对象的工作方式不同)......这就是我认为会发生的事情。
我的问题是:如何更改 ref 以便我可以直接在 main 中获得结果?
【问题讨论】:
-
我认为其他两个答案提供了您所需要的,但要强调:
bool、int和decimal等变量不会在地址级别更改。如果您需要这样做,请将您的变量包装到一个类中。但是,类实例不需要通过引用传递,因为所有类实例都已经通过它们的地址传递。