C# 从另一个按钮单击事件访问对象
我对C#还相当陌生,所以这实际上可能很简单,尽管我花了几个小时在没有解决方案的情况下搜索 我正在使用windows窗体,试图从另一个按钮单击事件访问对象。我得到的错误是“当前上下文中不存在名称‘object’”,当尝试在按钮2中访问对象时C# 从另一个按钮单击事件访问对象,c#,class,object,button,C#,Class,Object,Button,我对C#还相当陌生,所以这实际上可能很简单,尽管我花了几个小时在没有解决方案的情况下搜索 我正在使用windows窗体,试图从另一个按钮单击事件访问对象。我得到的错误是“当前上下文中不存在名称‘object’”,当尝试在按钮2中访问对象时 public void Button1_Click(object sender, EventArgs e) { // Prefilled with a persons info MyClass object =
public void Button1_Click(object sender, EventArgs e)
{
// Prefilled with a persons info
MyClass object = new MyClass();
}
public void Button2_Click(object sender, EventArgs e)
{
// Access object
string name = object.Name;
}
因此,我的问题是如何访问在另一个“按钮单击”中创建的对象?对象的范围应为类级别,以便同一类中的其他方法使用:
private MyClass _myClassObject; // class level object. Remember "object" is reserved keyword that is why renamed it to "_myClassObject"
public void Button1_Click(object sender, EventArgs e)
{
// Prefilled with a persons info
_myClassObject = new MyClass();
}
public void Button2_Click(object sender, EventArgs e)
{
// Access object
string name = _myClassObject.Name;
}
存在两个问题
对象
用作变量名。(对象
是保留关键字)public class Example
{
// Variable declared as a class global.
private readonly Sample sample;
// Constructor to build our sample.
public Example() => sample = new Sample();
// Button writing a property from sample.
protected void btnSend(object sender, EventArgs e) => Console.WriteLine(sample.SomeProperty);
}
因此,对象位于类的上部,当您构建示例时,始终会创建一个示例。因此,当您在Example
类中使用Sample
时,它的范围将正确
我也不明白为什么你必须点击一个按钮来填充这个对象,所以我改为在创建了
Example
之后构建这个对象 您已经在函数作用域中定义了对象,以便在执行函数代码后对其进行垃圾收集。您可能希望在类范围中定义它。更多信息c#6语法可能会让刚刚开始使用c#@Camilotervin的人感到困惑。公平地说,我经常使用速记。这是我的第二天性。