方法不返回值

本文关键字:返回值 方法 | 更新日期: 2023-09-27 18:06:44

我有一个方法,它应该在label.text中返回当前用户的域名。我在表单的加载事件中调用该方法,但什么也没有出现,代码中也没有错误。也许我开始的时候错了?如果我将方法代码直接放在load事件中,它就会工作。

public partial class Main Form
{
  public Main()
  {
    InitializeComponent();
  }
  public string getCurrentDomain()
  {
    return domainNameValue.Text = Environment.UserDomainName;
  }
  public void Main_Load(object sender, EventArgs e)
  {
    Main main = new Main();
    main.getCurrentDomain();
  }
}

方法不返回值

我认为你的问题是在Main_Load功能,你正在创建一个新的形式,而不是改变当前的形式,正确的代码是:

public void Main_Load(object sender, EventArgs e)                                                          
{
   this.getCurrentDomain();                                    
}

如果你想要另一种形式可以使用main.show()

问题是因为你在Main_Load方法中创建了Main类的新实例。因此,方法getCurrentDomain()更改您正在创建的实例的标签文本,而不是执行Main_Load的形式中的标签。

方法getCurrentDomain()的主体也违反了最小惊讶原则,因为该方法产生了改变标签文本的副作用。但是方法的名称只表明正在返回当前域名。

你可以使用

public string getCurrentDomain()                                                                      // Method: Get current domain
    {
        domainNameValue.Text = Environment.UserDomainName;    
        return Environment.UserDomainName;  
    }