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

回答編集履歴

4

補足の修正

2016/03/14 09:13

投稿

aridai1221
aridai1221

スコア45

answer CHANGED
@@ -58,6 +58,6 @@
58
58
  ```
59
59
 
60
60
  他にも「this」の使われ方がありますが、それはいいでしょう。
61
- (拡張メソッドなどを書くときにも使いますが、今回は関係ないようなので...)
61
+ (拡張メソッドなどを書くときにも使いますが、意味が違いますし、今回は関係ないようなので...)
62
62
 
63
63
  とりあえず、**「this」は「このクラスのインスタンスの~」という意味になる** と覚えておけばいいと思います。

3

付け足しの付け足しをした

2016/03/14 09:13

投稿

aridai1221
aridai1221

スコア45

answer CHANGED
@@ -58,4 +58,6 @@
58
58
  ```
59
59
 
60
60
  他にも「this」の使われ方がありますが、それはいいでしょう。
61
+ (拡張メソッドなどを書くときにも使いますが、今回は関係ないようなので...)
62
+
61
- とりあえず、「this」は「このクラスのインスタンスの~」という意味覚えておけばいいと思います。
63
+ とりあえず、**「this」は「このクラスのインスタンスの~」という意味になる** と覚えておけばいいと思います。

2

よりわかりやすくしたつもり

2016/03/14 09:11

投稿

aridai1221
aridai1221

スコア45

answer CHANGED
@@ -23,7 +23,7 @@
23
23
  {
24
24
 
25
25
  // MyClassのメンバ変数「x」に
26
- // コンストラクタの引数「x」の値を代入する
26
+ // コンストラクタの引数「x」の値を代入したいけど
27
27
  // x = x; のようには書けない
28
28
 
29
29
  // 意味としては
@@ -31,18 +31,21 @@
31
31
  // 意味としては mc.x = x; みたいな感じになる
32
32
 
33
33
  // だけど、変数「mc」っていうのは
34
- // 当然ここからアクセス出来ない
34
+ // 当然ここ使えない
35
35
 
36
+ // 仮に、変数「mc」というのが使えたとしても
36
37
  // さらに、もう1個インスタンスを作ろうとしたときに
37
38
  // そのインスタンスは変数「mc」には入っていない
38
39
  // もしかしたら、変数「mc2」というものに入っているかもしれないし、入っていないかもしれない
39
40
 
40
41
  // だから「MyClassのインスタンスのメンバ変数の「x」」というのを表したいけど
42
+ // 「何という変数に入っているか」もしくは「どの変数にも入っていないか」が分からないから
41
43
  // 「変数名.x」というように表せない
42
44
 
43
45
  // ではどうすればいいのかというと
44
- // C#「このクラスのインスタンスの~」というのを表すときに使われる予約語がある
46
+ // C#には「このクラスのインスタンスの~」というのを表すときに使われる予約語がある
45
47
  // それが「this」というキーワードということになる
48
+ // これを使えばいいのである
46
49
 
47
50
  // 変数「mc」や変数「mc2」などの中身 (=つまり、このクラスのインスタンスの参照) は
48
51
  // 「this」というものの中に入っている (「this」が表している)
@@ -52,4 +55,7 @@
52
55
  // という意味になる
53
56
  }
54
57
  }
55
- ```
58
+ ```
59
+
60
+ 他にも「this」の使われ方がありますが、それはいいでしょう。
61
+ とりあえず、「this」は「このクラスのインスタンスの~」という意味で覚えておけばいいと思います。

1

付け足した

2016/03/14 09:08

投稿

aridai1221
aridai1221

スコア45

answer CHANGED
@@ -28,13 +28,28 @@
28
28
 
29
29
  // 意味としては
30
30
  // 代入演算子の左辺は「MyClassのインスタンスのメンバ変数の「x」」ということだから
31
- // mc.x = x; みたいな感じになる
31
+ // 意味としては mc.x = x; みたいな感じになる
32
32
 
33
33
  // だけど、変数「mc」っていうのは
34
34
  // 当然ここからはアクセス出来ない
35
35
 
36
+ // さらに、もう1個インスタンスを作ろうとしたときに
37
+ // そのインスタンスは変数「mc」には入っていない
38
+ // もしかしたら、変数「mc2」というものに入っているかもしれないし、入っていないかもしれない
39
+
40
+ // だから「MyClassのインスタンスのメンバ変数の「x」」というのを表したいけど
41
+ // 「変数名.x」というように表せない
42
+
43
+ // ではどうすればいいのかというと
36
- // だから「このクラスのインスタンスの~」というのを表すときに使われる予約語がある
44
+ // C#「このクラスのインスタンスの~」というのを表すときに使われる予約語がある
37
45
  // それが「this」というキーワードということになる
46
+
47
+ // 変数「mc」や変数「mc2」などの中身 (=つまり、このクラスのインスタンスの参照) は
48
+ // 「this」というものの中に入っている (「this」が表している)
49
+
50
+ // つまり、this.x = x; と書けば
51
+ // 「MyClassのインスタンスのメンバ変数の「x」にコンストラクタの引数「x」の値を代入する」
52
+ // という意味になる
38
53
  }
39
54
  }
40
55
  ```