回答編集履歴

2

コード修正

2015/09/19 01:28

投稿

ozwk
ozwk

スコア13521

test CHANGED
@@ -3,6 +3,8 @@
3
3
  Aプロジェクト側では引数の型に、「`ITestable`の実装クラス」ではなく、`ITestable`を指定します。
4
4
 
5
5
  (というか、どういう実装をされているかを気にしないためにインターフェースを使うもの)
6
+
7
+
6
8
 
7
9
  例えば
8
10
 
@@ -16,25 +18,27 @@
16
18
 
17
19
  {
18
20
 
19
- ...
21
+ //...
20
22
 
21
23
  public void SomeMethod(ITestable testable)
22
24
 
23
25
  {
24
26
 
25
- ...
27
+ //...
26
28
 
27
29
  var b = testable.Test();
28
30
 
29
- ...
31
+ //...
30
32
 
31
33
  }
32
34
 
33
35
  }
34
36
 
37
+ ```
35
38
 
36
39
 
40
+
37
- ```
41
+ B側(もしくはA,Bを知っている他のプロジェクト側)では
38
42
 
39
43
 
40
44
 
@@ -46,7 +50,9 @@
46
50
 
47
51
  {
48
52
 
49
- void Hoge{
53
+ void Hoge
54
+
55
+ {
50
56
 
51
57
  ITestable t = new B();
52
58
 
@@ -58,6 +64,4 @@
58
64
 
59
65
  }
60
66
 
61
-
62
-
63
67
  ```

1

Bプロジェクト側追記

2015/09/19 01:27

投稿

ozwk
ozwk

スコア13521

test CHANGED
@@ -10,13 +10,15 @@
10
10
 
11
11
  ```C#
12
12
 
13
+ //Aプロジェクト
14
+
13
- class Foo
15
+ public class Foo
14
16
 
15
17
  {
16
18
 
17
19
  ...
18
20
 
19
- void SomeMethod(ITestable testable)
21
+ public void SomeMethod(ITestable testable)
20
22
 
21
23
  {
22
24
 
@@ -33,3 +35,29 @@
33
35
 
34
36
 
35
37
  ```
38
+
39
+
40
+
41
+ ```C#
42
+
43
+ //Bプロジェクト
44
+
45
+ class Bar
46
+
47
+ {
48
+
49
+ void Hoge{
50
+
51
+ ITestable t = new B();
52
+
53
+ Foo f = new Foo();
54
+
55
+ f.SomeMethod(t);
56
+
57
+ }
58
+
59
+ }
60
+
61
+
62
+
63
+ ```