- 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くらい
- 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の言うようにデリゲートをキャッシュする。
- 546 名前:545 mailto:sage [2009/08/03(月) 23:34:54 ]
- www.microsoft.com/japan/msdn/msdnmag/issues/05/07/Reflection/default.aspx
あった
- 547 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:47:28 ]
- メンバの検索には結構時間がかかったりもする(条件によってことなる)ので無意味ではないけど
デリゲートをキャッシュする効果に比べたら全く無意味と言っていいレベルだな。
- 548 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:55:42 ]
- >>541
だったらなおさら時間を大事にしろよ。 頭悪いのかね。
- 549 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 00:46:07 ]
- うん
- 550 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 01:20:09 ]
- くだらねー
- 551 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 01:53:58 ]
- うん
- 552 名前:デフォルトの名無しさん [2009/08/04(火) 18:11:07 ]
- 質問です。
領域を確保したbyte型の配列を以下の関数Funcに渡したいのですが、 どうすればいいのでしょうか? byte[] bytes = new data[640*480]; Func(????) void Func(ref byte data){ }
- 553 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:14:22 ]
- int n = 0; //好きな数字を入れてね!
Func(ref bytes[n]);
- 554 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:14:40 ]
- void Func(byte data[]){
} 何でこうなるのか考えてから次に進めよ
- 555 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:18:01 ]
- cじゃねえんだから
void Func(byte[] data)
- 556 名前:デフォルトの名無しさん [2009/08/04(火) 18:26:09 ]
- >>553,554,555さん
レス有難う御座います。 この場合、関数の型を以下で定義するべきなのは重々承知しております。 void Func( byte [] data) ただ、この関数は他社提供のクラスライブラリの為、替えることができません。 これってやっぱり、関数の定義ミスでしょうか? ちなみに、この関数は某大手電卓メーカの提供しているクラスライブラになります。
- 557 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:27:03 ]
- >>556
それなら使い方をサポートに問い合わせるのが一番だろ
- 558 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:31:21 ]
- >>557さん
恥ずかしながら、保守契約が切れていてけないのです ・・・ちょっと見落としていたけど、553の案で行けそうな気がしてきた
- 559 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:33:58 ]
- 553の方法でアクセスできました!!!!!
すいません。 有難うございます。 3時間ぐらいハマってた・・・ 皆様有難う御座いました。
- 560 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:34:14 ]
- なんじゃそりゃあ。
- 561 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:35:35 ]
- なんつうライブラリだ・・・・
要は配列の中の1バイトを書き換えるプログラムってことか…?
- 562 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:37:30 ]
- まさかのネタがマジレス
- 563 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:48:06 ]
- ネタじゃないです。
ネイティブコードのラッパライブラリみたいです。 サンプルさえあれば、こんなにハマることは無かったのですが、 本当に助かりました。感謝!!!!
- 564 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:52:54 ]
- 中でえげつないことしてそうだなあ
- 565 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:57:52 ]
- なんというか・・・・
これはひどそうな匂いがぷんぷんしてくるな
- 566 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:26:21 ]
- ライブラリの機能や仕様が不明なんだから何とも言えん。
ぱっと見た感じで怪しいのは確かだが。
- 567 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:36:16 ]
- C++ の
void Func(byte* data) を、C# に持ってくるときに void Func(byte[] data) にするべきはずのところを void Func(ref byte data) にしただけだと思う まあわかりやすい間違いだな
- 568 名前:デフォルトの名無しさん [2009/08/04(火) 19:57:55 ]
- こんばんわ
文系のプログラムわからないぼくですが 仕事の兼ね合い覚えないといけないことになりました。 やはり先に本をかって進めていったほうがよろしいですか?
- 569 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:01:21 ]
- あたりまえ
いくらPCに詳しくても,プログラミングでは「なんとなく触ってたら使える」というのはありえません
- 570 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:03:09 ]
- >>568
それってC#でなきゃいけないの?
- 571 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:08:39 ]
- >>570
はい、C#で開発なんで それでないといけないと思います。 本で初心者用って書いてあればなんでも平気ですかね。
- 572 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:10:16 ]
- C# とだけ書いてある本ではなく,Visual C# と書いてある本を選びましょう。
いきなり前者に挑むと挫折します。
- 573 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:12:58 ]
- しかし門外漢を使おうなんて余程手が足りないのね
ここからが本当の地獄だ
- 574 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:17:23 ]
- >>572
助かります。 2種類あったのか・・・ visualstudio2005を使うんですが、C#って書いてあったようなきがしたけど visualC#ってことでいいのでしょうか?
|

|