[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/07 13:31 / Filesize : 223 KB / Number-of Response : 993
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part53



1 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:11:11 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part52
pc12.2ch.net/test/read.cgi/tech/1238548552/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい

445 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 20:48:45 ]
そういうスレでやれ

446 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:41:04 ]
EventHandler eh += delegate { };
EventHandler eh += (sender, e) => { };

sender, eを使わない場合ラムダ式にしない方がいいの?

447 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 12:49:58 ]
使いもしないのに書くのは気持ち悪い

448 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 20:20:09 ]
関数でシステム作る様な言語でもないんだし
LINQの目的に使わないのなら俺は使ってないなー

449 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:35:08 ]
>>446
ラムダ式使うなあ。
別に引数を使わないのはLinqでもあることだし。

450 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 08:27:42 ]
使ってると関数式が分散しちゃって管理しづらくない?

451 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 12:16:38 ]
複数箇所で使うならメソッドにしとけ。その場限りならラムダにしとけ。
作ったメソッドをシグネチャ合わせるためにラムダ使うとかも良くあること。

452 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:20:59 ]
はい匿名関数使います。

453 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 13:29:18 ]
delegate { }の形の匿名メソッドはそのうち「今後は使用しないでください」ってお達しが出るかもね



454 名前:デフォルトの名無しさん [2009/08/02(日) 01:07:34 ]
C#って内部クラスをどういうときに使うの?
関連の強いクラスでも、内部クラスにするメリットがわからない。
Javaならすごいはっきりしてるけど・・・


455 名前:デフォルトの名無しさん [2009/08/02(日) 01:08:10 ]
>>1の本文は「飲み過ぎた・・・」と予想したが見事にはずれた

456 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 01:13:55 ]
>>454
javaだろうがc#だろうがインナークラスの使い道なんて一緒だと思うけど…。
よくわからん疑問だな。

457 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 01:32:22 ]
>>454
おまえはおれかw
今日ふと気になってそれ調べてたよ。
外部クラスのprivateフィールド、関数にアクセスできるのが一番のメリットだろうね。



458 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 01:32:42 ]
>>454
わざわざ外に書くほどでもないとき
スコープ的にそのクラスの外に見れないようにしたりしたいし

459 名前:デフォルトの名無しさん [2009/08/02(日) 01:49:07 ]
>457,458
こんな遅い時間にサンクスコ!
>外部クラスのprivateフィールド、関数にアクセスできるのが一番のメリットだろうね。
ああ、なんか勘違いしてました。外部クラスのインスタンスは渡してやらなきゃいけないけど
privateにアクセス可能なんですね。馬鹿な漏れですみません。

C#ってJavaに似せてはいるけど、かなり別モンですね。
スコープっていうかアクセス権については、
Javaのパッケージプライベートに相当するものが欲しい・・・
でもプロパティは素晴らしいです!(JavaのBeansは最悪。)

460 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 02:26:21 ]
プロパティはすばらしいとおれも思う。直観的だし、見やすい。

461 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 02:59:27 ]
そして書きやすいしね。VB.NETのプロパティはマンドクサだけど。

462 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 03:00:55 ]
プロパティとデリゲートは自慢できる機構だな。
いつJavaが逆輸入してくれるかと期待してるんだが、無理なのか。

463 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 04:01:16 ]
プロパティはいいとしても、
delegateはVJ++時代の歴史的ないさかいがあるからあれだなぁ。



464 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 04:02:34 ]
プロパティはJavaの新機能の候補にまで入ったんだけど・・・駄目だった
デリゲートはありえなさそうだ

465 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 07:55:22 ]
C++の将来はどうなりますか?

466 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 09:19:43 ]
C++の将来はC++0x、2015年までに何とかしてくれるらしい。
そろそろスレ違いだな。

467 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 10:36:21 ]
>>459
パッケージスコープはinternalがある。
「名前空間」っていうのはそもそもクラスライブラリを使う側のためにあるものだから
作る側の実装の都合によるパッケージスコープとは明確に区別されてる。
どっちがいいかは別にして,考え方の問題。

468 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 10:48:31 ]
.NETでCollectionを返してくるやつがあるけど何でジェネリック使ってないの?

469 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 11:03:03 ]
.NET1.xのころはジェネリックが使えなかったから。
3.0〜のWPFで非ジェネリックコレクションが一部使われてる理由は,
WPFはけっこう型にルーズで,突っ込まれたいろんな型のオブジェクトを
適当に自動的に変換したりするから

470 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 11:46:54 ]
>>467
考え方がどうとかはしらんが、
internalはexeやdllレベルのアクセス制限だから、Javaのpackage privateとは別モンだろ。
適度なアクセス制限かけたい時に、いちいちdllに分けるとかありえんwww

471 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 12:59:45 ]
?:でelse側要らない時あるから、何もしないで辞めるという予約語cancelを追加してほしい

x = x > y ? 10 : cancel;

Open(Exist(path) ? path : cancel);
引数にcancelが入るとそのメソッドは実行されない

472 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:05:42 ]
素直にif使えよ

473 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:14:30 ]
Exec(a(), Open(b(), Exist(path) ? path : cancel, c()), d())
じゃあこれでExist(path)がfalseになったときはExecも実行されないの?
aやbやcやdは?
無駄に複雑になりすぎる



474 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:33:32 ]
x = x > y ? 10 : x;

475 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:38:21 ]
x = x > y ? 10;

こう書けりゃいいのにな

476 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:57:46 ]
>>473
あー、なんか無理っぽいね
全部実行されないで欲しい感じはするものの

477 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:59:24 ]
無理して三項演算子使わなくてもいいのに。

478 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 14:38:47 ]
>>475
代入式なのに代入されない場合があるって、すんごいキモイと思うんだけど
どうだろうか

479 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 14:41:25 ]
タイプ数そんなに変わらん
if(x > y) x = 10;

cancel導入だとむしろ多くなるじゃないか

480 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 14:53:24 ]
>>479
これでいいじゃん
三項演算子にこだわる必要どこにもないし

481 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 14:53:48 ]
全メソッドが毎回cancelチェックするらしいぜ!

482 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 14:57:36 ]
なんで阿保の思いつきを開陳しようとする気になったの。

483 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 15:22:10 ]
おまえというド阿呆をおびき寄せるため



484 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:35:49 ]
本筋ではないけど、>>471のOpenの例はテストせずにモードOpenでtryして、
FileNotFoundExceptionなどをcatchでしょ。
ファイルは存在さえすれば開けるというものじゃないから、
どのみちtryする必要あり。それならばExistで存在確認するのは無駄。

485 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:38:23 ]
例外は重たいから事前にチェックできるのならばチェックすべし

486 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:40:16 ]
チェックから開くまでに、ファイルが消される可能性があるから無意味。

487 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:40:50 ]
チェックした方がいいのは確かだが
ファイルを開こうとして失敗するなんて秒間何千回起こるようなものでもないんだから
重たいとか別に関係ない

488 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:42:34 ]
例外は重いからチェックするってのは正か否か

これもよく揉める議題だよね。
頻度を考慮したらそんなに避けるべき問題でもないという結論に。

489 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 17:03:41 ]
平均的には、チェックする方が遅くなるだろうな
どっちみち頻度考えたら問題にはならないけど

490 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:04:04 ]
例外が思いからファイルを開くときにチェックしない
→ファイルを開くアクションを起こすと時々アプリケーションが終了
→作業内容が喪失
→作業意欲低下
→業務が滞る
→会社の収益が低下
→GDPが減少
→犯罪発生率の上昇
→本国崩壊
→朝鮮半島がなにかを主張し始める ←ここまで1年半

つまり例外処理反対派は反日親韓ということ?

491 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:10:37 ]
>>490
それを言うなら、
例外が思い(ママ)からファイルを開くときにチェック<する>

だろ。
いつも思うんだが、ネタっていうのは分かってる奴がやるから面白いんであって、
何もわかってない奴が無理してやるネタなんて面白くもないともないんだよお馬鹿さん。

492 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:14:21 ]
プログラムがファイルが存在しない状況について想定していることが伝わるからチェックはすべきでしょ

493 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:14:51 ]
>>491
??



494 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:17:53 ]
必要な処理を必要なだけやるわけであって
重いから処理しないのはゆとり

495 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:18:03 ]
ファイルが存在しない状況について想定していることが伝わればいいのなら
FileNotFoundExceptionを別にcatchするだけで十分じゃねーの

496 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:19:40 ]
はげどう

497 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:25:50 ]
まあFile.Existなんて気休めだよな。

498 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:56:25 ]
ところで
Try(() => Open(path)).Catch<FileNotFoundException>(ex => Console.Write(ex));
とか書けたらいいなと思ってるのは俺だけじゃないはず

というか多分書けるな
今から作ってこよう

499 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 00:05:20 ]
醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い
醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い
醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い
醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い
醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い
醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い醜い

500 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 00:10:24 ]
try〜catchじゃない意味あるの?
こんなオナニーコード見せられたら卒倒しちゃうよ。

501 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 00:14:51 ]
吐き気がするw

502 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 01:43:51 ]
>>498
賛同者はごくまれだろうな・・・・・

503 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 02:18:06 ]
if(auto ex = collectException(new File(path))) writeln(ex);



504 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 03:17:30 ]
RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup
みたいのはあるけどな。
もちろん理由があって。


505 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 05:05:40 ]
Util.TryCatch(()=>hogehoge...,e=>hoge....);
というのは作った。

506 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 05:10:59 ]
何の役にもたたなそうだな

507 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 07:06:19 ]
きもい流れになってるな・・・

508 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 12:01:36 ]
C#を見にくいコードにする友の会か?

509 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 12:47:28 ]
使う気にはなれないが、総称型をcatchに使えることは分かった。
public static T Try<TEx,T>(Func<T> func) where TEx : System.Exception {
 try { return func(); } catch (TEx ex) { Console.WriteLine(ex); return default(T); }
}


510 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:08:02 ]
これがラムダ厨の威力だというのか。

511 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:12:37 ]
もうクラス使わずに全部クロージャだけで書こうぜ

512 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:20:44 ]
一部のラムダ基地外をどうにかしてくれ。

513 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:27:07 ]
短かく書きたい病ってのは誰でも一度は発症するもんだよ



514 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:10:12 ]
ありすぎて困る

515 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:19:57 ]
短く書きたい自体は分かるが、
短くなってない、見にくくなってるだけが多いのはなんでだ。


516 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:20:14 ]
短く書きすぎて可読性落ちたらいみねぇwww


に気付くのにPGはじめて数年かかった

517 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:21:54 ]
try-catch-finallyをラムダで書くのに何のメリットがある。

518 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:48:42 ]
テストコードやアサーションとかなら使い道があるかも
思いつかないけど

519 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:00:32 ]
>>515
同感、未だ短く書きたい病発症してますけど、つか冗長コード書くやつ死ね派ですが
Tryは間違ってるだろと思うわ

520 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:05:09 ]
俺は冗長コードは可読性とパフォーマンスはかりにかけて許容範囲ならOKな派

521 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:34:03 ]
C#は文法自体が冗長だから短く書いてもたかがしれてるんだよな。
とりあえずPerlとかRubyは糞。

522 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:36:49 ]
冗長にも種類があって、この修正いったい何か所なおしゃいいんだよボケっって冗長タイプは大嫌い

523 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:52:04 ]
特定の人間しか読めないようだとそれはそれで冗長といえる気がする



524 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 19:00:18 ]
>>498みたいなのはともかく,さすがにラムダが全く分からないのは問題外

525 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 19:30:49 ]
いつも思うけどこのスレって程度の低い盛り上がり方するよね
ラムダ式なんて書けて当然読めて当然
ラムダ厨も叩いている奴も意識しすぎできもいよ

526 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 19:37:50 ]
と、>>498が言っております

527 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:08:43 ]
2chブラウザみたいに動的に分割するウインドウって作れるでしょうか?

528 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:17:19 ]
2chブラウザっていろいろない?

529 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:18:54 ]
それよりも
TryってVBじゃねえの

530 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:20:22 ]
どう考えてもjavaだろう

531 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:23:11 ]
いや そこはNullでしょ

532 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:27:53 ]
書けて当然読めて当然濫用も当然

533 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:33:24 ]
俺の書くコードが一番!
お前らの書くコードは二番!



534 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:37:40 ]
1人で書いてる限りは好きなように書いていいよ

535 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:59:43 ]
さんじのおやつはぶんめいどー

536 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:00:33 ]
534 おまえねーじゃますんなよw

537 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:09:53 ]
俺の言った設計通りに動いてくれるならどんな書き方したっていいよ
保守するのはお前らだし

538 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:46:04 ]
>保守するのはお前らだし
そう思ってたころもありました・・・


539 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:39:59 ]
Enum.ToStringはメタデータ検索するから遅くなるって言ってるけど
じゃあEnum.GetNamesとかはどうなの?遅くならんの?

540 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:48:22 ]
ウダウダここに書いてる間に試せると思うんですが…

541 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:49:04 ]
俺とお前じゃ時間単価が違うんだよ

542 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:49:59 ]
GetNamesやGetValuesは中でキャッシュされてるからそんなに遅くない
といっても配列の作成とコピーは毎回行われるので注意

543 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:51:32 ]
ToStringよりはずっと速い。




544 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:14:44 ]
全然関係ないけど、プロパティをリフレクションで取得したりするコードで、
リフレクションは遅いからプロパティ情報をキャッシュするのだ!って言って
DictionaryとかにPropertyInfoやMethodInfoをキャッシュしてるサンプル見るんだけど、
どうせキャッシュするならデリゲートにしとけっつの。
圧倒的に速いしリフレクション特有の問題も起きない。


545 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:29:47 ]
GetMethodとかは中でキャッシュされるからPropertyInfoやMethodInfoを
キャッシュするのはあまり意味がないとかいうのをMSDN Magagineあたりで読んだ覚えがある。
パフォーマンスのためなら>>544の言うようにデリゲートをキャッシュする。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<223KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef