2012-12-03 22 views
1

是否有keyword來引用當前類的類型,類似於this如何引用當前實例?C#關鍵字與「this」類似,但對於當前類的類型?

我的意圖是避免在引用靜態成員或枚舉時輸入完整的類名,但我希望像「this」那樣使用像this這樣的可讀性來表示它,就像我爲實例成員一樣。原因是一些類名非常大,並導致過度的包裝。

+2

什麼是你想實現什麼? – Candide

+0

您可以從實例內引用靜態和枚舉類型,而不用類名前綴 - 所以我沒有看到問題。你可能會發布示例代碼? – McGarnagle

+0

是的,我知道。我只想讓代碼看起來與Enums/statics保持一致,因爲StyleCop爲實例成員強制執行「this」。 – Monstieur

回答

6

我不認爲有一個關鍵詞,但也許是好的:

this.GetType(); 

GetType是由System.Object實施的幾個方法之一。

+0

當然,這將獲得對象的實際運行時類,它可能是類的子類,其中代碼是在。這可能或可能不是OP所要求的。 – newacct

+0

我用更多的細節更新了我的問題,不幸的是這並沒有解決我的問題。 – Monstieur

2

typeof(this)會做你以後的事情。

編輯: 我站好了。 typeof(this)是無效的C#。 dbaseman是正確的:this.GetType()將工作。

+1

'typeof(this)'它應該如何工作?請參閱[typeof(C#參考)](http://msdn.microsoft.com/en-us/library/58918ffs.aspx) – horgh

+0

@KonstantinVasilcov你是對的,這是行不通的。我應該先在LINQPad上試用它。 – TheEvilPenguin

2

如果包含using的名稱空間,則確實無法輸入完整路徑。

您可以using別名類名稱,例如:

using ClassA = Really.Deep.Class.In.Namepsace.For.SomePurpose.ClassA; 
+0

問題是類名本身是巨大的。 – Monstieur

+0

@Kurian那麼,你可以別名任何你想要的。你知道:'使用X = INeedToMakeFunOfTheDeveloperThatNamedThisLongClass'。 – Candide

+0

這非常有用。考慮在各個地方引用當前類型或類的片段。而不是取代每一次出現,一個'使用'就能做到這一點。 – Timo