gpt4 book ai didi

c# - 如何访问传递给构造函数的 ref bool 变量?

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:03 24 4
gpt4 key购买 nike

我有一个主窗体,它调用一个较小的窗体。在主窗体中,我有一个名为 _dataReadybool 设置为 false,但是较小的窗体的目的是检查一些东西并查看数据是否准备就绪,在这种情况下,它会将 _dataReady 设置为 true

这是我的问题:我使用输入参数调用迷你表单,例如 (ref bool _dataReady) 但问题是我无法在构造函数 block 之外访问它。

我尝试制作一个 private bool 并将 ref 设置为该值,但是在更改 private bool 的状态之后 ref 没有进行更改,这与面向对象编程的工作方式不同。

这是我的一些代码:

//这就是我在 main 中调用我的迷你表单的方式

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 中获得结果?

最佳答案

你不能使用 ref 来做到这一点,因为你的类中的字段不能成为 ref

我建议将您的变量包装到一个类中。您可以传递该类并使用内部值。

public class Wrapper<T>
{
public T Value {get;set;}
}

然后像这样使用它:

Wrapper<bool> w = new Wrapper<bool>() { Value = _dataReady };

new FrmAccounting(MyTextBox1.Text.Trim().Replace(",", "").ToInt32(),w).ShowDialog();

之后可以使用 w.Value 检索该值。

关于c# - 如何访问传递给构造函数的 ref bool 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31293469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com