2014-09-04 2 views
-1

Я использую собственный класс приложения для хранения моих глобальных переменных, но, похоже, я не могу заставить его работать. вот мой класс:Использование пользовательского класса приложения для глобальных переменных в Xamarin C#

#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; 
     } 

    } 

и с тех пор я мог бы найти любую документацию об использовании такого класса и, посмотрев на примеры ява оба этих кода дает мне «неспособный отлиты из источника к месту назначения» исключение

MyApp m = (MyApp)Application; 

и

Myapp m=(MyApp)ApplicationContext; 

могли бы вы помочь мне понять это? , и у меня есть другой вопрос. Это хорошая практика для получения или установки переменных с использованием методов или использования публичного статического? спасибо

ответ

0

Приложение - это определение класса.

Вам понадобится экземпляр приложения для включения в качестве MyApp.

Сделать MyApp статическим классом.

Сделайте свои методы статическим методом.

Тогда вы можете просто получить доступ к Заменить все ссылки на приложение с помощью MyApp и использовать его таким образом.

+0

Это свойство называется Application there.i'm, используя это не определение класса. –

+0

Это статическое определение класса, а не свойство. Вы можете использовать статические методы и свойства определения статического класса, но он сам по себе не является экземпляром класса Application. –

+0

Итак, если мне нужно сделать экземпляр моего класса в каждом действии, как я могу поделиться переменными между ними? –

Смежные вопросы