回答編集履歴

4

脱稿

2016/12/05 05:18

投稿

退会済みユーザー
test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
  ```
90
90
 
91
- 実際は、このメソッドは、他クラスに全く依存しない処理ので,元のクラス実装するか、staticメソッドにするのが良いです。
91
+ 実際は、このメソッドは、他クラスに全く依存しない処理ので,元のクラスにインスタンスメソッドとして実装するか、staticメソッドにするのが良いです。(スタンダードなオブジェクト指向に則るなら前者がいいと思います)
92
92
 
93
93
 
94
94
 

3

補足

2016/12/05 05:18

投稿

退会済みユーザー
test CHANGED
@@ -71,3 +71,45 @@
71
71
 
72
72
 
73
73
  大体ここに書かれている内容がわかるようになれば、オブジェクト指向に慣れると思うので頑張ってください。
74
+
75
+
76
+
77
+ 補足
78
+
79
+
80
+
81
+ ```C#
82
+
83
+ void ChangeFlag(TargetClass target){
84
+
85
+ target.Flg = !target.Flg;
86
+
87
+ }
88
+
89
+ ```
90
+
91
+ 実際は、このメソッドは、他クラスに全く依存しない処理ので,元のクラスで実装するか、staticメソッドにするのが良いです。
92
+
93
+
94
+
95
+ ```C#
96
+
97
+ Class TargetClass{
98
+
99
+ void ChangeFlag(){
100
+
101
+ this.Flg = !this.Flg;
102
+
103
+ }
104
+
105
+ }
106
+
107
+ 他クラスのどこかで
108
+
109
+ (ターゲットクラスのinstance).ChangeFlag()を呼ぶ
110
+
111
+ ```
112
+
113
+
114
+
115
+ という感じです。

2

わかりやすく

2016/12/05 05:16

投稿

退会済みユーザー
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- というインスタンスメソッドをそれぞれ、Aさん.AddAge(),Bさん.AddAge()の実行後、Aさん.ageは21,Bさん.ageは22になります。thisはそのメソッドを呼び出したインスタンス自身を指していることをわかって頂けたでしょうか。
27
+ というインスタンスメソッドをそれぞれ、Aさん.AddAge(),Bさん.AddAge()の実行後、前者はAさんがメソッドを呼び出したので、Aさん.ageは21,後者はBさんがメソッドを呼び出したので、Bさん.ageは22になります。thisはそのメソッドを呼び出したインスタンス自身を指していることをわかって頂けたでしょうか。
28
28
 
29
29
 
30
30
 

1

誤字

2016/12/05 05:07

投稿

退会済みユーザー
test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  ```
64
64
 
65
- などとします。なぜ._Flgを直接書き換えないかというと、privateを元のクラスで指定しているので、他クラスからこの変数にアクセスできないからです。代わりに提示していただいているコードには、Flgのgetterとsetterというアクセサと呼ばれる特殊なメソッドを定義していて、instance.Flg=(適当な値);とすると、instance._Flgが書き換わり、var 適当な変数名=instance.Flg;とすると、値が換わるように定義していて、これがpublicなので他のクラスから呼び出せるようにしています。
65
+ などとします。なぜ._Flgを直接書き換えないかというと、privateを元のクラスで指定しているので、他クラスからこの変数にアクセスできないからです。代わりに提示していただいているコードには、Flgのgetterとsetterというアクセサと呼ばれる特殊なメソッドを定義していて、instance.Flg=(適当な値);とすると、instance._Flgが書き換わり、var 適当な変数名=instance.Flg;とすると、instance._Flgの値が取得できるように定義していて、これがpublicなので他のクラスから呼び出せるようにしています。
66
66
 
67
67
 
68
68