我正在处理的这段代码工作不正常。调用hello()时会显示此错误:
nameThisString"在当前上下文中不存在"
我有整体代码结构(为了达到目的,它已经大大简化了)。我的代码出了什么问题?
using System.Windows.Controls;
namespace Application3
{
public partial class MainView : UserControl
{
public SecondClass secondClass;
public MainView()
{
InitializeComponent();
hello();
}
private void hello()
{
secondClass.nameThisString("hello");
}
}
public class SecondClass
{
public void nameThisString(string what)
{
what = "me";
}
}
}
答案 0 :(得分:4)
根据您发布的代码,只有一种方法可以解决上述错误;如果您调用了下面的方法,而不是secondClass.nameThisString("hello");
private void hello()
{
nameThisString("hello");
}
根据您的评论,您将获得NullRef
异常,因为您刚刚定义了变量但尚未为其创建实例。将您的代码更改为
public SecondClass secondClass;
public MainView()
{
InitializeComponent();
secondClass = new SecondClass(); // create an instance
hello();
}
答案 1 :(得分:3)
您必须首先在MainView类的构造函数中创建SecondClass的实例。
答案 2 :(得分:0)
你忘了实例化课程;像这样使用:
public SecondClass secondClass;
public MainView()
{
InitializeComponent();
SecondClass = new SecondClass();
hello();
}
或者简单地说:
public SecondClass secondClass=new SecondClass();