我有一个Windows应用程序,该应用程序通过命令行参数接受字符串。
该字符串将是以下之一:19、20、21、23、25。这是一个ID,用于动态构建URL。
我之前在很多应用程序中都使用过枚举,但是实际上我从来没有从头开始构建过一个枚举,所以(我觉得这很愚蠢),我并不完全理解它们。
根据传入的字符串,我想设置一个UI标签。我要显示的对应值如下(回想#值是传入的字符串):
19 = Facebook
20 = Twitter
21 = YouTube
23 = Flickr
25 = Blogs
因此,如果传入23,我的标签将显示为“ Flickr”。我可以用枚举来做这件事吗?
public Form1(string collectorID)
{
InitializeComponent();
this.CollectorID = collectorID;
labelCollector.Text = // Set label here
WebConnection.Create(CollectorID);
}
谢谢!
史考特
最佳答案
enum Sites
{
Facebook = 19,
Twitter = 20,
YouTube = 21,
Flickr = 23,
Blogs = 25,
}
//
int i = 19;
if (!Enum.IsDefined(typeof(Sites), i))
{
throw new Exception();
}
string str = ((Sites)i).ToString();
请注意,许多程序员(包括我在内)都考虑使用枚举的
ToString()
有点“愚蠢”(这是因为您使所有内容“除非修改程序就不可变”和“不可本地化”)我要补充一点,您可以使用
Dictionary
(更好的是,可以动态加载Dictionary):Dictionary<int, string> sites = new Dictionary<int, string>()
{
{ 19, "Facebook" },
{ 20, "Twitter" },
{ 21, "YouTube" },
{ 23, "Flickr" },
{ 25, "Blogs" },
};
//
string str2;
if (!sites.TryGetValue(i, out str2))
{
throw new Exception();
}
// str2 contains your site description
关于c# - 在C#中使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7295029/