ふらっとC#,C♯,C#(初心者用) Part43at TECH
ふらっとC#,C♯,C#(初心者用) Part43 - 暇つぶし2ch883:デフォルトの名無しさん
09/08/26 10:18:14
844からWebBrowserは想像できねーよw

884:デフォルトの名無しさん
09/08/26 10:53:13
>>883
たぶん、紙にでもならない限りむりだろうなw。

885:844
09/08/26 10:54:27
>883-884
すみませんw
まさかここで引っかかってると思いもしなかったので

886:デフォルトの名無しさん
09/08/26 12:32:13
>>885
>すみませんw

なんだよ最後の草はバカにしてるのか

887:デフォルトの名無しさん
09/08/26 13:01:17
牛乳飲め

888:デフォルトの名無しさん
09/08/26 14:01:37
C++みたいに、引数で渡したオブジェクトの中身は触らないよ!みたいな指定って出来ませんか?


889:デフォルトの名無しさん
09/08/26 14:02:11
void FuncA() { Console.WriteLine("A"); }
void FuncB() { Console.WriteLine("B"); }
void FuncC() { Console.WriteLine("C"); }

Action x;
Action y;

x += FuncA;
x += FuncB;
x += FuncC;
y = x;

x -= FuncB; // FuncAとFuncCが残る
y -= x; // FuncBだけ残るはず
y();

Bだけ表示されると思ったのですが、A, B, C全て表示されました。
x -= FuncAやx -= FuncCにした場合は、ちゃんとAだけCだけ表示されます。
なぜでしょうか?

890:デフォルトの名無しさん
09/08/26 14:34:38
delegate の -= はコンパイル時に Delegate.Remove に解決される。
で、Delegate.Remove の解説はこれ。
> value の呼び出しリストが source 呼び出しリスト内の隣接している一連の要素と一致する場合は、
> source の呼び出しリスト内に value の呼び出しリストが含まれていると見なされます。
> value の呼び出しリストが source の呼び出しリスト内に複数回出現する場合は、
> 最後に出現した呼び出しリストが削除されます。

x -= FuncB すると x には FuncA, FuncC というリストが残る。
y は FuncA, FuncB, FuncC というリストだから、
「リスト内の隣接している一連の要素」に一致しなくなる。

891:デフォルトの名無しさん
09/08/26 14:47:11
>>888
必要とされる理由がないので無い

892:デフォルトの名無しさん
09/08/26 15:00:03
>>888
俺もそれ欲しいんだけどなあ。
Dictionaryとか参照だけさせたいときは読み取り専用ラッパで包むしかないんだろうか。

893:デフォルトの名無しさん
09/08/26 16:28:23
>>867
ありがとう。参考にさせてもらいます。
思ったより長くなるんですね

894:デフォルトの名無しさん
09/08/26 17:22:34
>>891
このメソッドに渡すこのインスタンスは中身が変更されるんだろうか?
って気になることあるじゃんか

サマリーに明記するしかないのかね
例外なんかはサマリーにかけるよね

895:デフォルトの名無しさん
09/08/26 17:39:42
そういう場合インスタンス渡さないから気にならないなあ。

896:デフォルトの名無しさん
09/08/26 17:59:29
何でもかんでもListとか要求する関数とか書いてそうだな>>892>>894

897:デフォルトの名無しさん
09/08/26 18:33:51
C++でconstを活用してない人は疑問に思わないんだろうな

898:デフォルトの名無しさん
09/08/26 18:39:25
次はフレンドクラス作れるようにしろとでも言い出すのかよ
バカか

899:デフォルトの名無しさん
09/08/26 18:42:19
馬鹿ですけど何か文句あるか?

900:デフォルトの名無しさん
09/08/26 18:45:45
>>896
で、こういう場合C#ではどうするの?

901:デフォルトの名無しさん
09/08/26 18:46:37
>>897
学習能力衰えた脳筋はC++から出てくんなハゲ。

902:デフォルトの名無しさん
09/08/26 18:49:24
>>900
例となるメソッドとクラスを提示してくれよ。

903:デフォルトの名無しさん
09/08/26 19:05:34
C#でやるならIReadOnlyHogeとその派生のIHoge(クラスでもいいけど)を作るのが自然だと思う。
C++のconstの概念は、実質的にそういう2つのクラスを作っているも同然だって。

まあ、IList<T>とその周辺はそういう風になっていないけどさ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch