2010-04-29 77 views
2

所以, 我想获得一个枚举或类的名称,而不附加到它前面的完整的命名空间...例如:获取不带名称空间的枚举或类的字符串名称?

enum MyEnum { 
    // enum values here 
} 

// somewhere else in the code 
string testString = ???? // ???? returns "MyEnum" 

typeof(MyEnum)主要工作,但是的命名空间枚举被附加到前面。

任何帮助将不胜感激......谢谢!

回答

8

使用.Name只得到字符串中的类型,就像这样:

string testString = typeof(MyEnum).Name; 

下面是一些例子:以上

typeof(String).Name // "String" 
typeof(String).FullName // "System.String" 

.FullName喜欢的例子给出了完整的类型名称,包括命名空间。

+0

完美的感谢...我不知道typeof()有这么多漂亮的属性。我甚至没想过去检查它的智能感受。 – Polaris878 2010-04-29 17:06:44

+0

@Polaris - 当你调用它时,你会得到一个['System.Type'](http://msdn.microsoft.com/en-us/library/1ek3kwtc.aspx),所以你想使用它for :) – 2010-04-29 17:08:53

+0

应该指出'typeof(Dictionary ).name'返回'Dictionary'2'(但是用反引号代替撇号),对于所有其他泛型类型也是如此。 – Timwi 2011-05-04 20:16:09

相关问题