2013-11-21 37 views
4

我有一個C#枚舉類型,它以非常長的限定名稱結束。例如C#我可以訪問一個沒有完整名稱的枚舉

DataSet1.ContactLogTypeValues.ReminderToFollowupOverdueInvoice. 

對於可讀性,這將是很好,如果我可以告訴一個特定的功能,只是使用的名稱,像的最後部分...

{ 
    using DataSet1.ContactLogTypeValues; 
    ... 
    logtype = ReminderToFollowupOverdueInvoice; 
    ... 
} 

是否有可能做任何事情一樣這在C#中?

+0

我不這麼認爲,但是你可以在類的外面定義枚舉,所以至少你會跳過'DataSet1.'部分。 –

+1

使用別名簽出:http://msdn.microsoft.com/en-us/library/c3ay4x3d(v=vs.110).aspx –

+5

您不能爲實際枚舉*值*創建別名,但可以爲enum * type *創建一個別名,如下所示:'使用ContactLogTypeValues = YourNamespace.DataSet1.ContactLogTypeValues;'。欲瞭解更多信息,請參閱http://msdn.microsoft.com/en-us/library/aa664765(v=vs.71).aspx –

回答

3

您可以使用using指令來指定別名。它將存在於文件中的任何地方,而不是一個特定的方法。

+0

謝謝,別名是非常接近我正在尋找。 – user1961169

3

我意識到這可能不是您設想的解決方案,但它確實允許您編寫您要求的代碼。

enum ContactLogTypeValues 
{ 
    ReminderToFollowupOverdueInvoice, 
    AnotherValue1, 
    AnotherValue2, 
    AnotherValue3 
}; 

static ContactLogTypeValues ReminderToFollowupOverdueInvoice = ContactLogTypeValues.ReminderToFollowupOverdueInvoice; 
static ContactLogTypeValues AnotherValue1 = ContactLogTypeValues.AnotherValue1; 
static ContactLogTypeValues AnotherValue2 = ContactLogTypeValues.AnotherValue2; 
static ContactLogTypeValues AnotherValue3 = ContactLogTypeValues.AnotherValue3; 

static void Main(string[] args) 
{ 
    var a = ReminderToFollowupOverdueInvoice; 

} 
+1

是的,我考慮過這種方法,但真的不想走這條路。 :)它確實使功能代碼看起來不錯,儘管以無用變量爲代價。 – user1961169

相關問題