2011-11-18 30 views
4

我有以下代码:如何访问这是在一个单独的类中声明ENUM - C#

class EmployeeFactory 
{ 
     public enum EmployeeType 
     { 
       ManagerType, 
       ProgrammerType, 
       DBAType 
     } 
} 

我要访问这个在主类(计划)。我写了下面的代码。有用。但我想知道如何在不实例化类的情况下访问ENUM - 意味着ENUM就像是一个静态变量(Class Level Variable)?任何帮助?

class Program 
{ 
     static void Main(string[] args) 
     { 
       Console.WriteLine(EmployeeFactory.EmployeeType.ProgrammerType); // WORKS WELL 
     } 
} 

还是需要这样写?

EmployeeFactory ef = new EmployeeFactory(); 
ef.EmployeeType.ProgrammerType 
+0

是什么问题?你可以像你在你的问题中那样引用枚举。你还想做什么? – drdwilcox

+0

你能澄清你的问题吗?你说你的Console.WriteLine()代码有效。该代码不会实例化你的类的一个实例。问题是什么? –

+1

你回答了你自己的问题。 – Gabe

回答

5

只需使用该类即可访问它。

EmployeeFactory.EmployeeType.ProgrammerType 

枚举是类的一部分,而不是类实例的一部分。

+0

如何?它是否像“STATIC”变量一样,因此我可以放?它属于CLASS而不是OBJECT? – user1054625

+0

如果我理解正确,那么是的,这是正确的。枚举类型属于类而不属于类的实例。 – mydogisbox

+0

枚举是类的一部分,不是类实例的一部分 - 这是我需要的。 – user1054625

1

但我想知道我怎么可以访问ENUM没有实例化类

原来的方式,你在访问该枚举

Console.WriteLine(EmployeeFactory.EmployeeType.ProgrammerType);

已经实现了这个;你访问枚举没有实例化类。

-1

尝试这样的事情......

public interface IEnums 
    { 
     public enum Mode { New, Selected }; 
    } 

    public class MyClass1 
    { 
     public IEnums.Mode ModeProperty { get; set; } 
    } 

    public class MyClass2 
    { 
     public MyClass2() 
     { 
      var myClass1 = new MyClass1(); 

      //this will work 
      myClass1.ModeProperty = IEnums.Mode.New; 
     } 
    } 

或 您可以直接访问这样的....

EmployeeFactory.EmployeeType.ProgrammerType 

我希望它会帮助你

+0

它看起来像你从http://stackoverflow.com/a/4444048/663899复制此。此外,这似乎并不适用于我,我得到一个错误“接口不能声明类型”。 – Lawyerson

相关问题