如何将页面中声明的变量访问到内部类?
Posted
技术标签:
【中文标题】如何将页面中声明的变量访问到内部类?【英文标题】:How to access a variable declared in a page to a inner class? 【发布时间】:2018-07-19 06:41:08 【问题描述】:我想将在 Main 类中声明为 public 的变量访问到在同一页面中创建的新类。我已经完成了如下操作。但无法访问该类中的变量
public sealed partial class MainPage : Page
public bool is_arrived = false;
public MainPage()
this.InitializeComponent();
bool is_arrived=true;
CallingWebServices asyn_task = new CallingWebServices();
public class CallingWebServices
//want to access variable "is_arrived" here.
【问题讨论】:
How to restrict access to nested class member to enclosing class?的可能重复 为什么要在页面中创建嵌套类?你想做什么? 【参考方案1】:在这种情况下,您应该使用构造函数注入并将 is_arrived 的值传递给 CallingWebServices。
public sealed partial class MainPage : Page
public bool is_arrived = false;
public MainPage()
this.InitializeComponent();
bool is_arrived=true;
CallingWebServices asyn_task = new CallingWebServices(is_arrived);
public class CallingWebServices
private bool _isArrived;
public CallingWebServices(bool isArrived)
_isArrived=isArrived;
//want to access variable "is_arrived" here.
这种方法的一个问题是,如果您在父类中更改 is_arrived 值,它将失去同步。所以另一种方法是将父类的引用传递给内部类。
public sealed partial class MainPage : Page
public bool is_arrived = false;
public MainPage()
this.InitializeComponent();
bool is_arrived=true;
CallingWebServices asyn_task = new CallingWebServices(this);
public class CallingWebServices
private MainPage _Instance;
public CallingWebServices(MainPage instance)
_Instance=instance;
//Access variable "instance.is_arrived" here.
但是,应劝阻此类做法,并应通过采用更好的设计方法来消除这种做法。
【讨论】:
以上是关于如何将页面中声明的变量访问到内部类?的主要内容,如果未能解决你的问题,请参考以下文章