在Xamarin c#中为全局变量使用自定义应用程序类

本文关键字:自定义 应用程序 全局变量 Xamarin | 更新日期: 2023-09-27 18:20:36

我正在使用一个自定义应用程序类来存储我的全局变量,但我似乎无法使其工作。这是我的课:

    #if DEBUG
    [assembly: Application(Debuggable = true)]
    #else
    [assembly: Application(Debuggable=false)]
    #endif
    internal class MyApp : Application
    {
        private Customer loginedCustomer;
        private List<string> sefareshItems;
        public Boolean isOnline { set; get; }
        public MyApp(IntPtr handle, JniHandleOwnership ownerShip) : base(handle, ownerShip)
        {
        }
        public override void OnCreate()
        {
            // If OnCreate is overridden, the overridden c'tor will also be called.
            base.OnCreate();
        }
        public void SetLCustomer(Customer customer)
        {
            loginedCustomer = customer;
        }
        public Customer GetLCustomer()
        {
            return loginedCustomer;
        }
        public void SetItems(List<string> items)
        {
            sefareshItems = items;
        }
        public List<string> GetItems()
        {
            return sefareshItems;
        } 
    }

由于我可以找到任何关于使用此类的文档,并且通过查看java示例,这两个代码都给了我"无法从源代码转换到目标代码"的异常

 MyApp m = (MyApp)Application;

Myapp m=(MyApp)ApplicationContext;

你能帮我弄清楚吗?我还有一个问题。使用方法或使用公共静态方法获取或设置变量是一种好的做法吗?感谢

在Xamarin c#中为全局变量使用自定义应用程序类

应用程序是一个类定义。

您将需要一个应用程序实例来转换为MyApp。

将MyApp设为静态类。

制作方法的静态方法。

然后,您可以简单地访问用MyApp替换对应用程序的所有引用,并以这种方式使用它。