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

回答編集履歴

5

修正

2017/05/10 15:11

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -15,7 +15,7 @@
15
15
  }
16
16
  ```
17
17
 
18
- 上記の時、sampleData[i] は sampleData の i 番目の要素のコピーを返します。コピーのメンバを変更してもオリジナルには影響しません。そのため、コピーのフィールドを変更しただけでこの値を使用しなかった場合、紛らわしいのでこれをエラーにします。
18
+ 上記の時、sampleData[i] は sampleData の i + 1 番目の要素のコピーを返します。コピーのメンバを変更してもオリジナルには影響しません。そのため、コピーのフィールドを変更しただけでこの値を使用しなかった場合、紛らわしいのでこれをエラーにします。
19
19
  エラーにならなかった場合、一見正しいように見えるので非常に見つけにくいバグになりかねません。
20
20
 
21
21
  次のようにして確かめてみてください。sampleData[i].Status は false で初期化されます。したがって、最初の Debug.WriteLine は false を出力します。しかし、次の Debug.WriteLine は true を出力します。
@@ -32,4 +32,4 @@
32
32
  }
33
33
  ```
34
34
 
35
- つまり、`sampleData[i].Status = true;` とした時、sampleData から i 番目の要素のコピーが取り出され、その Status フィールドが true に変更されますが、取り出されたコピーはどこからも参照されることなく消えていくという意味のないコードになります。これをエラーとしてユーザーに明示的に注意喚起しているのです。
35
+ つまり、`sampleData[i].Status = true;` とした時、sampleData から i + 1 番目の要素のコピーが取り出され、その Status フィールドが true に変更されますが、取り出されたコピーはどこからも参照されることなく消えていくという意味のないコードになります。これをエラーとしてユーザーに明示的に注意喚起しているのです。

4

修正

2017/05/10 15:11

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -30,4 +30,6 @@
30
30
  Debug.WriteLine(sampleData[i].Status);
31
31
  Debug.WriteLine(datum.Status);
32
32
  }
33
- ```
33
+ ```
34
+
35
+ つまり、`sampleData[i].Status = true;` とした時、sampleData から i 番目の要素のコピーが取り出され、その Status フィールドが true に変更されますが、取り出されたコピーはどこからも参照されることなく消えていくという意味のないコードになります。これをエラーとしてユーザーに明示的に注意喚起しているのです。

3

修正

2017/05/10 14:51

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -16,7 +16,7 @@
16
16
  ```
17
17
 
18
18
  上記の時、sampleData[i] は sampleData の i 番目の要素のコピーを返します。コピーのメンバを変更してもオリジナルには影響しません。そのため、コピーのフィールドを変更しただけでこの値を使用しなかった場合、紛らわしいのでこれをエラーにします。
19
- エラーにならなかった場合、一見正しいように見えるので非常にデバッグしにくいエラーになりかねません。
19
+ エラーにならなかった場合、一見正しいように見えるので非常に見つけにくいバグになりかねません。
20
20
 
21
21
  次のようにして確かめてみてください。sampleData[i].Status は false で初期化されます。したがって、最初の Debug.WriteLine は false を出力します。しかし、次の Debug.WriteLine は true を出力します。
22
22
 

2

修正

2017/05/10 14:47

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -15,7 +15,7 @@
15
15
  }
16
16
  ```
17
17
 
18
- 上記の時、sampleData[i] は sampleData[i] のコピーを返します。コピーのメンバを変更してもオリジナルには影響しません。そのため、コピーを使用しなかった場合、紛らわしいのでこれをエラーにします。
18
+ 上記の時、sampleData[i] は sampleDatai 番目要素のコピーを返します。コピーのメンバを変更してもオリジナルには影響しません。そのため、コピーのフィールド変更しただけでこの値を使用しなかった場合、紛らわしいのでこれをエラーにします。
19
19
  エラーにならなかった場合、一見正しいように見えるので非常にデバッグしにくいエラーになりかねません。
20
20
 
21
21
  次のようにして確かめてみてください。sampleData[i].Status は false で初期化されます。したがって、最初の Debug.WriteLine は false を出力します。しかし、次の Debug.WriteLine は true を出力します。

1

修正

2017/05/10 14:46

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -15,7 +15,8 @@
15
15
  }
16
16
  ```
17
17
 
18
- 上記の時、sampleData[i] は sampleData[i] のコピーを返します。コピーのメンバを変更してもオリジナルには影響しません。そのため、コピーを使用しなかった場合、エラーになります。
18
+ 上記の時、sampleData[i] は sampleData[i] のコピーを返します。コピーのメンバを変更してもオリジナルには影響しません。そのため、コピーを使用しなかった場合、紛らわしいのでこれをエラーにます。
19
+ エラーにならなかった場合、一見正しいように見えるので非常にデバッグしにくいエラーになりかねません。
19
20
 
20
21
  次のようにして確かめてみてください。sampleData[i].Status は false で初期化されます。したがって、最初の Debug.WriteLine は false を出力します。しかし、次の Debug.WriteLine は true を出力します。
21
22