为了账号安全,请及时绑定邮箱和手机立即绑定

侦听器方法中的范围问题

侦听器方法中的范围问题

C#
扬帆大鱼 2023-12-17 16:57:57
我希望能够从此 中的所有方法引用 类的 Reaction 对象> 类。我在第一个事件侦听器方法中声明了 对象。然而,第二个事件侦听器无法访问该类的实例,我不知道如何修复它。EquationClassCalculatorPageReaction我尝试将第一种方法更改为public,但错误仍然存在。private void ExampleListenerMethodOne(object sender, RoutedEventArgs e){    var Reaction = new EquationClass("Example");    Reaction.species = Reaction.MakeAndReturnSpeciesArray();}public void ExampleListenerMethodTwo(object sender, RoutedEventArgs e){    Console.WriteLine(Reaction.species); //Here is the 'Does not exist                                          //in current context error'}我希望能够从任何地方访问该对象,但我不能。 我从 Visual Studio 收到 “当前上下文中不存在错误”。我已阅读其他相关问题,但找不到解决方案。
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

只需将其转变为财产即可。在这里,该类实例化了一个 Reaction 类型的新变量(以及您需要执行的任何操作)。因此,对于下面需要它的两个方法来说,myReaction 变量处于类级别范围内。以前,您的变量位于方法范围内,这意味着它不能在方法之外使用。代码块中定义的变量也有一个块作用域,例如 if 语句,其中变量在 if 语句中定义。


public class MyClass

{

    public Reaction myReaction { get; set; }


    public MyClass()

    {

        myReaction = new EquationClass("Example");

    }


    private void ExampleListenerMethodOne(object sender, RoutedEventArgs e)

    {

        myReaction.species = Reaction.MakeAndReturnSpeciesArray();

    }


   public void ExampleListenerMethodTwo(object sender, RoutedEventArgs e)

   {

       Console.WriteLine(Reaction.species);

   }

}


查看完整回答
反对 回复 2023-12-17
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信