0

Glassクラスには次のアクセサがあります。

public bool isGlassEnabled{
    get {
         if (System.Environment.OSVersion.Version.Major >= 6) {
             DwmIsCompositionEnabled( ref en );
             if (en > 0) {
                return true;
             } else { return false; }
         } else { return false; }
    }
}

(コードが機能しているかどうかはわかりませんが、それは私が興味を持っていることではありません)

今、私たちはに位置していMainClassます。isGlassEnabledこのようにアクセスする可能性はありますか?

bool myBool = **without new** Glass.isGlassEnabled;
4

4 に答える 4

3

この作品を作るには

bool myBool = **without new** Glass.isGlassEnabled;

staticプロパティが必要です:

public static bool isGlassEnabled{
    get { ... }
}

そして、bool myBool = Glass.isGlassEnabled;単にコンパイルします。

ゲッターで必要なものはすべて静的であるため、問題はありません。

編集:

en他の人が指摘しているように、コードにはローカルまたは静的のいずれかである必要がある変数が含まれています。
他のいくつかのブランチフォールディングと一緒に:

public static bool isGlassEnabled
{
    get 
    {
         if (System.Environment.OSVersion.Version.Major >= 6) 
         {
             Int32 en;   // or whatever type exactly needed
             DwmIsCompositionEnabled( ref en );
             if (en > 0) 
                return true;                
         }
         return false; 
    }
}
于 2012-10-07T18:09:56.083 に答える
2

はい、プロパティを静的としてマークする必要があります。

public static bool isGlassEnabled
于 2012-10-07T18:09:39.667 に答える
2

静的修飾子を使用する

public static bool isGlassEnabled
于 2012-10-07T18:09:59.573 に答える
1

静的プロパティを使用します。

public static bool isGlassEnabled{
    get {
        TypeTheTypeOfEnVariableHere en;
        if (System.Environment.OSVersion.Version.Major >= 6) {
             DwmIsCompositionEnabled( ref en );
            if (en > 0) {
               return true;
            } else { return false; }
        } else { return false; }
   }
}
于 2012-10-07T18:09:37.627 に答える