ページ

2005年1月24日月曜日

C# の代入演算子の結果は何か?(re: 動きとしてはこれでいいんだっけ?)

動きとしてはこれでいいんだっけ? より。


パッと見は不思議な挙動に思えますが、ちゃんと規定されてました。
C# 言語仕様 7.13.1 単純代入
に 「単純代入式の結果は、左オペランドに代入される値です」 とあります。ということは、プロパティに対して代入されるときは、そのプロパティの set に渡された値そのものが結果であって、set されたあとにもう一度 get されるわけではないということです。


なので、代入演算子を繋げて書いた場合と、複数行にわけた場合とでは結果が違うということになっちゃうわけですね。
# まぁ、副作用があるようなプロパティは極力使わないほうがいいということでしょうね。

0 件のコメント:

コメントを投稿