公共访问者

时间:2012-10-07 18:06:44

标签: c# class

我在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 个答案:

答案 0 :(得分: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; 
    }
}

答案 1 :(得分:2)

是的,您应该将属性标记为静态

public static bool isGlassEnabled

答案 2 :(得分:2)

使用静态修饰符

public static bool isGlassEnabled

答案 3 :(得分: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; }
   }
}