我对C#很新,所以这可能很简单,虽然我花了几个小时没有解决方案进行搜索。
我正在使用Windows窗体,我正在尝试从另一个按钮单击事件访问一个对象。当我尝试访问Button2_Click中的对象时,我得到的错误是“名称'对象'在当前上下文中不存在。”
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;
}
所以我的问题是如何访问在另一个“Button_Click”中创建的对象?
答案 0 :(得分:1)
存在两个问题。
my_dict.get('a1')
# ['PROJ1', 'LOB1']
my_dict.get('o1')
# ['PROJ1', 'LOBA']
my_dict.get('not exist')
# None
用作变量名称。 (object
是保留关键字)要解决您的问题,您可以在创建初始对象时调整范围。
object
因此,对象位于类的上半部分,在构建Example时,始终会创建一个示例。因此,当您在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);
}
类中使用Sample
时,它将被正确确定范围。
我也不明白为什么你必须单击一个按钮来填充这个对象,所以我改为在创建Example
后构建对象。
答案 1 :(得分:0)
object
的范围应该是类级别,以供同一类中的其他方法使用:
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;
}