- 1 名前:デフォルトの名無しさん [2008/04/22(火) 00:31:59 ]
- (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。 前スレ C#, C♯, C#相談室 Part45 pc11.2ch.net/test/read.cgi/tech/1200911737/ その他テンプレ>>2-5くらい
- 186 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:50:18 ]
- 何言ってんの。
オブジェクト指向イコールJavaと言ってもいい程だよ。
- 187 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:52:15 ]
- その進んだ研究を勉強していないのは駄目だという事だよ
今のライブラリは当たり前にその設計思想が入っているからな、知らないと使い方分らんだろ。
- 188 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:53:17 ]
- >>186
ゴールじゃねぇよ、LINQとか見てみろ
- 189 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:54:35 ]
- 別にオブジェクト指向がどうとかこうとかどうでも良いよ
- 190 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:55:05 ]
- インスタンスは実体。
お前はパソコンに文字を表示させるとき、直にVGAのメモリを書き換えるのか?違うだろう。 ドライバやらOSやらGDI+やらライブラリ郡など抽象化されたものを通してアクセスし表示させるだろう。 オブジェクト指向はインスタンス(実体)を直接操作せず、抽象化して利用しやすくする手法。 インスタンスがメインなわけがない。
- 191 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:55:55 ]
- >>188
ゴールなんて関係ないこと持ち出して自ら否定して 結局何が言いたかったのかね。
- 192 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:56:37 ]
- >>190
ヒント:言葉遊び
- 193 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:56:38 ]
- >>190
そうだな、もう永久にそう思っていろよw
- 194 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 20:59:04 ]
- >>190
そんな考えでも君のプログラムがちゃんと動くならそれでいいよ それはそれで正しいわけだから
- 195 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:00:26 ]
- 良いコード:動くコード
悪いコード:動かないコード
- 196 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:05:01 ]
- クラスが主役 に一致する日本語のページ 約 290,000 件中 1 - 10 件目 (0.30 秒)
インスタンスが主役 に一致する日本語のページ 約 1,790 件中 1 - 10 件目 (0.06 秒)
- 197 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:11:37 ]
- タイヤキの型とタイヤキそのもの
どっちも主役です(ゆとり教育的発想)
- 198 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:34:08 ]
- もうこの手の話がしたい奴はOOPスレ行った方がいいよ。
あそこは>>175的なトンチキな自説をぶってるアホが延々同じネタをループしてて楽しいと思うよ。 俺は正直吐き気がするけどねああいうの。 ちなみに>>190は半分はいいこと言ってると思うんだよね。 OOPというアイデアの肝は、>>190の言う抽象化(より正確には仮想化と言うべきだと思うけど)された 仮想機械をより直感的に表現するコーディング手法ということだと思う。 ただ「実体=インスタンス」ってのは全然意味不明だが。
- 199 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:36:29 ]
- インスタンスの和訳が実体だろ・・・
- 200 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:43:41 ]
- >>188
LINQはオブジェクト指向とはまた別だろ。 関数型プログラミングのほうが近い。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:45:09 ]
- なんか、こう訳わからん事になっているから、少し書くと
たとえば、C++でいう所の仮想テーブルは、virtual などなくても class のみで作り出すことができる。 これは非常に重要なことで、仮想テーブルは書き換えられないが、自分で作った仮想テーブルは書き換えられる。 このような実装は、Strategyパターンと呼ばれる。 つまり、classを使った抽象化は実は必要なく、ただ『頻繁に出てくるので言語上にvirtualとして実装しておくと便利であるという程度の意味』しかないのだ。 オブジェクト指向を理解する上で、この点について理解しているかどうかは決定的だ。 理解せずクラスと継承を中心に置くとやれる事が一気に限定されてしまうのだ。 さらには、継承には各種問題点も指摘されてり、特に深い継承は良くないと最近はされている。 また原則、継承を考える前にインターフェイスを検討するべきとされている。 参考コーディング規約 www.kawabata.com/dotnet/CodingStdCS.pdf 参考サイト www.objectclub.jp/
- 202 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:49:06 ]
- >>199
話の文脈を読まなきゃ。 >>190の言う「実体」とは「クラスによって抽象化される前の何者か」。 たとえばGDIならビデオカードやプリンタのハードウェアのことを「実体」といっている。 少なくとも話の前半ではね。
- 203 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:51:16 ]
- >>201
それって結局、包含と委譲のことだろ。クラス対インスタンスという話ではない。 継承だけがクラスの特徴ってわけじゃないぞ。
- 204 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:51:26 ]
- >>202
確かに変だな。
- 205 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:53:21 ]
- >>203
つってもインスタンスを大量生産するための鋳型以上の意味もないだろ?
- 206 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:55:38 ]
- >>175
ひょっとしてインターフェイスと書くところをインスタンスにしてしまって 引っ込みが付かなくなったとか。それなら文脈があうが・・・
- 207 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:57:38 ]
- >>206
インターフェイスもインスタンスの一つと見なしてよいものだよ。 インターフェイスは取得するものだ。
- 208 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:58:17 ]
- >>207
またまた荒れるような書き方をするな。
- 209 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 21:59:06 ]
- いったい君たちは何の話をしてるの?
誰か頭のいい人ドラゴンボールに例えてくれよ
- 210 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:00:06 ]
- ドラゴンボールの主人公はヤムチャなのか天津飯なのかと言う話
- 211 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:27:53 ]
- 実装と概念は分離して語れよ
- 212 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:30:20 ]
- ↑といいつつ乖離して語る馬鹿
- 213 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 23:10:09 ]
- 主役はキーボードを打つキミだ!!
- 214 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 01:52:33 ]
- >>209
サイヤ人→クラス 悟空→インスタンス
- 215 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 01:57:38 ]
- スーパーサイヤ人→スーパークラス
- 216 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 04:08:51 ]
- ブルー将軍→サブクラス
- 217 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 06:42:59 ]
- クラスもメタクラスのインスタンスだから、
インスタンスが主役ということでおk、みたいな話か?
- 218 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 06:58:38 ]
- 決定的な違いは、メタ視点を持てているかどうかだろうな
明らかに不自由な設計やコーディングをしているのは明白なのだが 目が見えていないので、それを理解するのが困難になっているような気がする。
- 219 名前:163 mailto:sage [2008/05/14(水) 09:30:42 ]
- 皆さん、いろいろとアドバイス頂き有難う御座います。
すこしスレが荒れ気味ですが、これは私の無知を175さんが丁寧に ご指導してくださった点から始まっているかと思います。 原因は私にあります。スレを汚して申し分けありません。 最近良く思うのですが、OOPの浸透が何故遅いかと、 1)基本概念と実装に大きな開きがありすぎる。 2)考え方に様々な歴史や諸説があり、人や本によって解釈が異なる。 (人によって解釈が異なるのは、読んだ本の年代が大きく依存しているんでしょうか・・) の2点に集約してるかと思います。 OOPが不慣れなものにとっては 具体的な実装論はなかなか本の中には出てこず、 また、こーいう現場的な定石というのか考え方が定まらなくて、 悩んでいることが多いんです。 だから、175さんを始め皆様より貴重なアドバイスを頂いた件は、 非常に感謝しております。 インスタンスの件は、2論に分かれているかと思いますが、 これは馬鹿な私にでも分かるように説明した為の、言葉の綾かと思います。 長文になってしまい申し訳ありません。 とても勉強になりますた。 皆様を師匠と仰ぎ、また伺わせて頂きます!!
- 220 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 12:43:48 ]
- くだらない哲学論争は後回しにして、とりあえずクラスの利便性(哲学論争クンはこういう言い方に反発するようだけど)
を体得するのがいいと思うよ。っていうかそれが一番重要。 大して難しいことじゃないから使ってれば自然とわかるよそれは。 くれぐれもOOPを外から強制された義務的なものに過ぎない、などと考えないこと。 便利だから使われてるんだよ。 OOPが浸透してないとは俺には思えないけど、もしそうであるのなら それはOOPが「つかえねえ」からじゃなくてこの業界に馬鹿が多いからだよw
- 221 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 14:16:24 ]
- 質問です
UDPで受信したメッセージをテキストBOXに表示する処理の方法論です。 今は、UDP受信を別スレッドで受信して。セマフォー同期ででString変数に渡し。 フォームのプロセスで、タイマー関数からセマフォーを同期で文字列を受け取って テキストBOXに表示しています。 しかし、今一つスマートでないような気がしてなりません。もっと良い方法がないでしょうか?
- 222 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 14:38:37 ]
- 普通に Control.Invoke でいいんじゃねーの?
- 223 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 15:20:18 ]
- タイマースレッド内に、Invokeで受信部分を入れてみたのですが。
ダメみたいな感じでした。 問題点1 Invokeスレッドが終了しない。 問題点2 結局、セマフォーで受信の確認を取るので処理的に同じ。 ただし、使い方が悪いのかもしれない。 別スレッドから、フォームに非同期イベントが出せればいいのだけど、その方法を知らない。 きっと有るような気がします。すごく初歩的な機能かも知れない…
- 224 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 15:36:47 ]
- 223が何を言ってるのか全く分からない
Invoke スレッドて何?
- 225 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 16:14:15 ]
- >>224
んなこと言ったら、余計意味不明な説明が始まりかねん で、結論 Invokeの意味を理解できてない Invokeの使い方が間違っている
- 226 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 16:18:18 ]
- >>225
>Invokeの意味を理解できてない その可能性もある。 >Invokeの使い方が間違っている この問題にInvokeが適用できない。又は、別つの方法があるが使用したくない。 ちなみに、Invokeの中は一つのスレッドであることは理解していますよね?
- 227 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 16:54:08 ]
- >>221
Control.Invokeが解っていないなら、 codezine.jp/a/article.aspx?aid=139
- 228 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 17:32:06 ]
- >>222-227
出来ました。 結論:Control.Invokeが解っていなかった。無知でした。 申し訳ありません。そしてありがとうございました。
- 229 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 21:33:17 ]
- 本当の主役はテレビの前のあなたです!!m9ビシッ
- 230 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:31:56 ]
- 定数の取り扱いについての質問です。
定数宣言 public enum 定数 { MASU = 81, } 変数の定数宣言 public const int MASU = 81; この場合、配列列データ_創る場合。 private int[] tbl = new int[定数.MASU]; と private int[] tbl = new int[MASU]; どちらも同じに見えるのですが。前者を使用したほうがベターですか? 前者の方が速いですか?
- 231 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:37:25 ]
- enumハックを思い出した
- 232 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:46:14 ]
- キモい命名法だ
- 233 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:58:18 ]
- >>230
速さは一緒 値自体に意味があるならenumじゃなくてconstの方が適切 でもpublicならconstじゃなくてstatic readonlyにした方がいい
- 234 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 00:14:07 ]
- >>233
知らなかった知識です、ありがとうございます。
- 235 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 00:35:48 ]
- constと(static )readonlyは全く別物だから、
ちゃんと調べて使い分けるようにした方がいい
- 236 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:28:29 ]
- >>235
どこがどう違うかを書いた方がいい
- 237 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:44:41 ]
- 自分で書けよ
- 238 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:48:18 ]
- constに出来るものをstatic readonlyにした方がいい理由ってなんだよww
- 239 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:26:42 ]
- >>238
メモリの節約。
- 240 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 03:30:00 ]
- ↑アホ
- 241 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 06:17:51 ]
- 基本的にconstはクラス内でprivateに定義してその中だけで使用する。
constをアセンブリやnetmoduleまたがりで参照した場合、副作用がある。 S.DLLでpublic const A = 10 M.EXEで S.Aの表示 10 public const A = 99 に変更してS.DLLだけを再コンパイル。 M.EXEを再コンパイルしない限り結果は10のまま。
- 242 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 07:48:45 ]
- constを他のアセンブリから参照すると、参照元のアセンブリにも定数が埋め込まれる。後で値を変えたらさあ大変。
数学定数みたいに、絶対に値が変わることがないもの以外は、static readonlyにしたほうが無難。 あとはSizeとかDateTimeみたいに初期化の必要なものを、定数っぽく扱いたいときに。
- 243 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 09:05:11 ]
- それは完全に枝葉というか性質というか…全然別という意味分からないだろ
constはコンパイル時に値が確定される定数、readonlyは書き込み不可な変数。 見えてくる違いとしては、constはコンパイル時に評価されるので使える範囲がちょっと広い。 定数式しか許されない属性指定内部やswitchのcase句にも使用可能。これらに使用される場合境界越えで あってもconstにする必要がある。 ちなみにenumの個々の値はconstなのでenumを等価に置き換えるならconstになる。
- 244 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 09:25:48 ]
- enumの値が変わったら大変なことになるんだな
- 245 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 09:27:54 ]
- 外部に公開している列挙体を不用意に変更しちゃマズいのか。
- 246 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 10:09:30 ]
- >>242
これは知らなかった。勉強になる
- 247 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 14:15:35 ]
- ところでなんでcaseには定数しか書けないの?
- 248 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 14:33:21 ]
- 定数じゃないと、複数該当することもあるからじゃない?
まあ上から順番に比較するような仕様のやつもあるが。
- 249 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 17:34:50 ]
- あとジャンプテーブル変換
- 250 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 18:23:06 ]
- 実装を簡単にするための手抜き
- 251 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 22:20:36 ]
- かといってVBのSelectCaseは自由すぎると思わないか?
- 252 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 23:37:20 ]
- selectっていうのは0,1,2,3,4...
みたいに連番で並んでると それを関数ポインタの配列みたいにしてジャンプすることが出来る だから定数じゃないとどうしようもない
- 253 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 02:00:26 ]
- バカばっかw
- 254 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 08:37:30 ]
- ↑暴走中。
- 255 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 10:48:23 ]
- >>251
バグを引き起こしかねない問題を含まない限り、自由度は高いに越したことはないよ C#は新規なんだから、switch case の構文にこだわるべきじゃないとは思った もともと、switch は C の特殊 goto label の構文な訳だし、考え方が古臭すぎる。 for 文からの脱出に break を使いたくても、switchにとられてしまうとかダサいと思うので。
- 256 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 11:37:15 ]
- フォールスルー不可能にもかかわらずbreak必須って時点で(ry
- 257 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 11:38:59 ]
- たしかに。
この辺何とかならなかったのか。 C、C++からの移行を意識してるならswitch caseと別の構文にすればいいしな
- 258 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 11:57:33 ]
- >>252
stringにもswitchは使える その場合はif(str=="a") /*case a*/ else if(str=="b") /*case b*/ else if… みたいなコードにコンパイルされる
- 259 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 16:01:00 ]
- >>258
たくさんあるとDictionaryを使うらしいぞ
- 260 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 18:35:22 ]
- #regionはIDEで出来るようにした方がいいと思う。
- 261 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 18:49:50 ]
- それを言語そのものに組み込むところはC#の特徴というかアピール
IDEサポートを謳ってる言語なんだから
- 262 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:29:25 ]
- C#3.0の自動プロパティ作ると、[xxx]k_BackingField(うろ覚え)とかいうような変数が内部で生成されてるらしいんだが、これにソースコード上で属性を付加する方法ってありますか?
自動生成のプロパティにつけても自動生成される変数には付加されないみたいです。
- 263 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:54:51 ]
- >>261
C++にもあるよ。 てかそれなら両方サポートすればいいじゃん。
- 264 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:02:54 ]
- >>262
> 自動実装するプロパティ (C# プログラミング ガイド) > > 自動実装したプロパティでは、属性は使用できません。プロパティのバッキング フィールドで属性を使用する必要がある場合は、通常のプロパティを作成します。
- 265 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:05:39 ]
- >>264 ('A`)マンドクセ
- 266 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:21:12 ]
- プログラミングC#っていう本を買おうかと思ってるんだけど
これ2年前に第4版が出たのが最後で、C#2.0対応とかVS2005対応とか書いてるよね もう今はC#3.5とかVS2008もでてるけど、近いうちに第5版とか出たりしそうかな? それとも第4版の内容でまったく問題ない?
- 267 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:27:06 ]
- 普通に考えれば最新の機能には対応してない。それだけだ
- 268 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:32:47 ]
- C#3.5って出てるの?
- 269 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:39:45 ]
- >>267
まあ、そうだね。サンクス >>268 ごめん、嘘ついた。NET Framework 3.5でもC#は3.0のままです ちょっと調べてたら原書のProgramming C# 3.0ってのは去年末にでてるんだな 日本語版でないかなー
- 270 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:43:57 ]
- 始めたばかりの俺はそれを待っている
今は猫と初めてを併用して学習中
- 271 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:02:27 ]
- 原書買えよ
- 272 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 02:10:19 ]
- 質問です。
DataGridViewで自動カラム生成機能ってありますけれど あれのカラムのフィールド名はこちらから指定できないんでしょうか? (特にReflectionを使った手法で) プロパティに属性つけるとかしたら上手くいくんじゃないかと思ってるんですが… ご存知の方いましたらお教えください。
- 273 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 03:11:04 ]
- 自動生成したらフィールドも何もないと思うが、
カラムのフィールド名って具体的に何を指してる? デザイナで列を追加したときにフォームに作られる Column*フィールドの名前のことか?
- 274 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:16:50 ]
- >>273
すいません、あまりにも説明不足でした。 フォームのカラムのヘッダに表示される文字列のことです。 プロパティ名がそのまま文字列変換されて表示されているようなので 多分どこかで設定できるんではと思っているのですが…
- 275 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 07:41:53 ]
- Select()でプロパティ名を変えた匿名型にすればいい
var e1 = ...; // 元のデータソース: IEnumerable<Hoge> var e2 = e1.Select(x => new { Bar = x.Foo, ... });
- 276 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 08:36:22 ]
- 知らない文法だなぁと思ったら2008ですか…。
ちょっと調べてみます。ありがとうございます。
- 277 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 16:45:58 ]
- Seleは2005でもあるんじゃ?
ラムダはデリゲートになおせばいいよ
- 278 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 16:47:00 ]
- Selectな
- 279 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 16:50:05 ]
- ごめん嘘だ
msdn.microsoft.com/ja-jp/library/bb548891.aspx 3.5からだった
- 280 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 22:57:12 ]
- 2005でも似たようなのを作ることは出来るがラムダ式がないと使い物にならない
- 281 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 06:12:12 ]
- 2008に慣れてしまって、もうLastOrDefault()相当のコードを書くことすら面倒くさい。
- 282 名前:デフォルトの名無しさん [2008/05/19(月) 14:21:56 ]
- WindowApplicationを作っています。
別スレッド(固定周期)でDBの値を引いてきて、Form(メインスレッド)のラベル.Text属性に値を設定する という処理を行なっていますが、 表示されるのは最初だけで、その後DBの値を変えてもラベルの値が変更されません。 どうしたらいいかご教授ください。
- 283 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 14:29:09 ]
- >>282
>>227と同じかな?
- 284 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 19:18:45 ]
- 同一のストリームをBinaryReaderとBinaryWriteに食わせた場合、
Closeを呼び出す順番ってどうすればいいの? ついでに、フィールドで持っているストリームをメソッド内のローカルの BinaryReader/BinaryWriterに食わせた場合、仮にメソッド内でClose呼んだりusingを使ったり することを避けたとしてもBinaryReader/BinaryWriterがGCに回収されるタイミングで ストリームも強制的に閉じられてしまうんだろうか?
- 285 名前:デフォルトの名無しさん [2008/05/19(月) 20:14:51 ]
- 今、関数の引数を設定したλ式を作る時、以下のようにしているのですが、
もっと良い方法または、ライブラリにこれと同様なことをするための物はあるのでしょうか? static Func<TResult> SetArg<T1,TResult>(Func<T1,TResult> f,T1 a1) { return () => f(a1); } ... static Func<TResult> SetArg<T1,T2,T3,T4,TResult>(Func<T1,T2,T3,T4,TResult> f,T1 a1,T2 a2,T3 a3,T4 a4) { return () => f(a1,a2,a3,a4) ; }
- 286 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 20:50:34 ]
- >>285
>static Func<TResult> SetArg<T1,TResult>(Func<T1,TResult> f,T1 a1) >{ > return () => f(a1); >} ライブラリに同等のものはないしもっと良い方法もない。 でもここにあげられたSetArgメソッドを使うぐらいなら a1 => f(a1) と毎回インラインで書けば十分だと思うよ。
|

|