回答編集履歴

2

訂正

2016/03/20 13:52

投稿

catsforepaw
catsforepaw

スコア5938

test CHANGED
@@ -17,3 +17,11 @@
17
17
  C#では引数で結果を受け渡しする際に、`ref`や`out`を付けて参照渡しにすることができます。その場合は書き換わることが明確に判断できます。
18
18
 
19
19
 
20
+
21
+ ---
22
+
23
+ 訂正
24
+
25
+ raccy さんの解説により、破壊的メソッドの意味を勘違いしていたことが判りました。
26
+
27
+ C++ではメソッドの後ろに`const`を付けることで、そのメソッドはオブジェクトを変更しないということを明示することができるので、少なくとも「変更しない」ことは判断が付きます。

1

追記

2016/03/20 13:52

投稿

catsforepaw
catsforepaw

スコア5938

test CHANGED
@@ -7,3 +7,13 @@
7
7
 
8
8
 
9
9
  C#は少々曖昧ですね。C#は構造体オブジェクトは値渡しですが、クラスオブジェクトはC++でいうところのポインタ渡しになるので、オブジェクトを変更することができてしまいます。にもかかわらず変更禁止にする仕組みが提供されていません。readonlyのようなそれっぽいキーワードはあるのですが、引数には使えません。ですので、C#では明確な区別はできません。かといって名前に何かを付けるといった慣習もありません。
10
+
11
+
12
+
13
+ ---
14
+
15
+ 追記
16
+
17
+ C#では引数で結果を受け渡しする際に、`ref`や`out`を付けて参照渡しにすることができます。その場合は書き換わることが明確に判断できます。
18
+
19
+