質問するログイン新規登録

回答編集履歴

1

2017/01/13 03:22

投稿

tamoto
tamoto

スコア4346

answer CHANGED
@@ -6,4 +6,21 @@
6
6
  ただし、似たような存在だけど解決する事柄が違うものである場合(例えば`Task`クラスと`Task<T>`クラスなど)は、別のファイルに分けてしまいますね。その場合は(Task_T.cs)のように適当な名前にしています。
7
7
 
8
8
  そもそも、同じ名前でジェネリック型引数の数だけが異なるクラスというのは、どのような状況で、どのような意図で作られたのか、質問からだと読み取れませんね。せめてそのクラスが何を表す存在なのかが分かるともう少し詳しく回答できるのですが……。
9
- ちょっと思いつく似たようなケースでは、両方の本質を表すabstract classを作成し、それを継承する形で2つのGenericClassをそれぞれの用途を表す異なる名前で定義し、(<abstract class>.<GenericClass>.cs)という名前で別々のファイルに整理したことはありますね。
9
+ ちょっと思いつく似たようなケースでは、両方の本質を表すabstract classを作成し、それを継承する形で2つのGenericClassをそれぞれの用途を表す異なる名前で定義し、(<abstract class>.<GenericClass>.cs)という名前で別々のファイルに整理したことはありますね。
10
+ ```csharp
11
+ // Abstract.cs
12
+ public abstract class Abstract<TResult>
13
+ {
14
+ // ...
15
+ }
16
+
17
+ // Abstract.XXX.cs
18
+ public class XXX<TResult> : Abstract<TResult>
19
+ {
20
+ }
21
+
22
+ // Abstract.YYY.cs
23
+ public class YYY<TParam, TResult> : Abstract<TResult>
24
+ {
25
+ }
26
+ ```