33175


# 質問したいこと

Android（Xamarin）でグローバル変数の利用法について教えていただきたく

## 内容

[リンク](http://qiita.com/ksugawara61/items/31e72681fff7d6d390e9)  
ここを参考にグローバル変数を利用したいと思い実装しました。  
下記のように実装した所、以下のエラーがでてしまい上手いこと出来ませんでした。

[code]

    public async static void startAlarm(context context){
    ////
    utilcommon btnflg;
    btnflg=(utilcommon)this.Application
    ////
    
[/code]

エラー  
キーワード 'this' は、静的プロパティ、静的メソッド、または静的フィールド初期化子では無効です

その為下記について教えていただきたく考えています。

1.上記エラーはどのようにするべきか  
thisを削除した所、Applicationでエラーが発生しました。  
2.Androidでグローバル変数を利用するためにはこのように結構実装に手間がかかりますが  
基本的にAndoroidでグローバル変数は利用しないのでしょうか。  
利用する上で何か問題があるのでしょうか。

以上、よろしくお願いします。


CC BY-SA 3.0
2017-03-07T22:27:34.543
33174
2017-03-07T23:31:23.643
13593
question
android c# xamarin
Android(Xamarin)でのグローバル変数の利用法


  1. static(=静的)メソッドではthis(=動的に生成されたインスタンスを指すキーワード)は使えないので、メソッドからstaticを取り除くか、メソッドの引数に`this.Hoge`を追加するのが一般的な対応です。  
ただし今回のケースでは単純に、`Application`が[初期化される前に](http://qiita.com/MizoTake/items/c69e5f060a0094ebe1ca)`startAlarm`メソッドを呼び出してはいないでしょうか。

  2. [Applicationクラス拡張](http://www.buildinsider.net/mobile/xamarintips/0031)などでどのクラスでも参照できるプロパティを持つこと自体は、仕組みを理解して使っていれば悪いことでも難しいことでもありません。  
いわゆる「グローバル変数」を多用するときの問題は「カプセル化 メリット」などで検索して出てきます。


CC BY-SA 3.0
2017-03-07T23:31:23.643
33175
2017-03-07T23:31:23.643
9820
33174
answer