2012-09-05 34 views
4

當你有一個泛型類,不同類型參數的重載似乎普遍認爲,您使用的文件名後面剔語法:我應該在接口上使用Back Tick公約嗎?

MyType.cs 
MyType`1.cs 
MyType`2.cs 

這是同一個接口?例如:

IRepository.cs 
IRepository`2.cs 

如果你有這些相應類型的參數:

public interface IRepository { 

public interface IRepository<T, in TId> { 
+9

就個人而言,我甚至從來沒有見過這類課。我把所有這些類型放在同一個文件中。當我將一個以上的課程放在單個文件中時,這是唯一的情況。 –

+0

@DanielHilgarth:那些是CLR類型名稱。你會偶爾看到他們。 – SLaks

+0

我不認爲這是(應該)被接受的做法。 _generated_類型名稱包含反標記。 –

回答

13

文件約定只是個人/團隊偏好。如果你願意,你可以做到這一點。

我個人傾向於將它們放在同一個文件中。如果我在尋找IRepository,我會假設任何和所有的IRepository接口都是相似的,都代表一個「存儲庫」,所以我只是在同一個地方尋找它們。這將避免需要找出哪些`2等文件進行搜索。對我而言,「IRepository`5.cs」不是比在一個文件中查找所有內容更容易理解或發現的。

+0

很好的回答。我想我會更喜歡他們在同一個文件中。 – Fenton

2

是。
該公約適用於所有類型的類型,接口和委託類型–。

+2

我不確定你是否正確理解了這個問題。他問他是否應該這樣命名他的源文件。 –

+2

@DanielHilgarth:如果你是爲一個班級做的,你也應該爲其他類型做。 – SLaks

+0

+1,以便在使用時保持一致。這聽起來很合理。 – Fenton