C# 将字符串值从另一个类返回为 null 值

本文关键字:返回 null 字符串 另一个 | 更新日期: 2023-09-27 18:30:46

示例:

public partial class abc1 : Form
{
       public string str__subgrp { get; set; }
       public string str__type { get; set; }
       public string return_str__type { get; set; 
       public abc1()
       {
          InitializeComponent();
       }
       private void savebtn_click(object sender, EventArge e )
       {
            this.str__subgrp = "ABC";
            this.str__type = "123";
            this.return_str__type = "This word is unicode";
       }
}

public partial class worknow : Form
{
       // ... declare variable in class ....
       public worknow()
       {
          InitializeComponent();
       }
       private void showformbtn_click(object sender, EventArge e )
       {
            string a,b,c;
            using ( var abc1_frm = new abc1())
            {
                 abc1_frm.ShowDialog();
                 a = abc1_frm.str__subgrp;
                 b = abc1_frm.str__type;
                 c = abc1_frm.return_str__type;  // This variable = null
            }
       }
}

在注释行中(此变量 = 空)

为什么变量return_str__type返回null值?

C# 将字符串值从另一个类返回为 null 值

只有当您

确保在关闭对话框之前执行savebtn_click时,您才能期望abc1_frm.return_str__type具有与 null 不同的值。由于您没有确切告诉我们用户(或您作为测试人员)如何关闭对话框,并且如果您禁用了关闭按钮 [X],我能给您的唯一建议是在该方法的调试器中设置断点并检查代码是否已执行。

return_str__type属性的赋值发生在savebtn_click函数中。为什么期望调用此函数?尝试将savebtn按钮设置为abc1AcceptButton,或者找到一种方法savebtn_click定义为表单的默认事件。请用你的风格代码做一些东西,我的眼睛在流血:)

我遇到了类似的问题。它与范围有关。 尝试将return_str__type声明为公共静态类型,看看它是否有效。 并不总是最佳实践,但可能只是有效。