1 名前:デフォルトの名無しさん [2016/06/29(水) 04:39:09.19 ID:sT3gw8va.net] ■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1437808445/ C#, C♯, C#相談室 Part89 peace.2ch.net/test/read.cgi/tech/1443271409/ C#, C♯, C#相談室 Part90 echo.2ch.net/test/read.cgi/tech/1455160063/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。
528 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:24:50.13 ID:HDnGX34n.net] >>506 普通かどうか知らんけどこれだよね www.pro.or.jp/~fuji/mybooks/cdiag/
529 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:39:03.09 ID:vfo9HhT2.net] インデント>=括弧>>>>>>>>>>>>>>begin,end begin,endのメリットは全く分からない
530 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:40:48.38 ID:08YRGffV.net] >>508 他の言語との違いを出すための苦肉の策。
531 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 16:15:14.95 ID:is8rsJHF.net] >>508 目に優しい
532 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 16:21:08.95 ID:teO92MZf.net] { } を透明色にするエクステンションを作れば解決するだろうが!
533 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 16:44:05.68 ID:GPAGDQ3+.net] バグ死
534 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 18:58:56.20 ID:abnGTaRM.net] >>507 そうだよ 診断室とここのスレタイの相談室を掛けたんだよ
535 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 19:57:10.80 ID:i/vdkCcD.net] ASP.NET WebFormsってあるじゃん 入力値の検証コードを書く仕事をやらされてるんだけどさ 何回も何回も同じような(でも微妙に違う)コードを書かされる拷問みたいになってるんだけどこれうまいことDRYできないの? クライアントサイドのイベントハンドラで検証 サーバーサイドのイベントハンドラやページメソッドで検証 入力モデルにバインドしてローカルサービで検証 といったように少なくとも1リクエストで3回はよく似たコードを書いてる コントロールが多いエンドポイントだと死んでしまう
536 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 21:23:26.09 ID:NvN4PBVL.net] >>514 モデルクラスに入れてからまとめて検証すりゃいいでしょ クライアントサイドはサーバー側でREST API用意しといてAJAXで呼べばいい
537 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 03:17:01.13 ID:Q23f0Xjy.net] >>514 WEBフォームだろ? カスタムの検証コントロール作ればいいんじゃないかね
538 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:51:52.34 ID:0IhXUzhb.net] >>516 それは試したけど柔軟性がないから断念した カスタム検証コントロールではまずクライアントサイドのカスタム検証ができない それに検証前後に簡単に処理をフックする事ができない やろうと思えばできない事もないけど自動生成されたコードにアクセスする必要があるからメンテナンスの不安がある
539 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 19:22:49.84 ID:NWup8pYR.net] >>517 全部サーバーサイドでやればいいんじゃないか?
540 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 20:26:43.89 ID:Q23f0Xjy.net] >>517 もしかして、CustomVaidatorの話かそれ? 祖じゃなくて、自分で検証するコントロール作れって話だぞ クライアント用のスクリプトも全部自分で出力できるぞ これで柔軟性がないってなら、WEBフォームじゃ無理ってことだ
541 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 20:57:02.22 ID:0IhXUzhb.net] >>519 CustomValidatorの事を言った もしかしてCustomValidatorってみんな使ってないの?
542 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:18:42.69 ID:Q23f0Xjy.net] >>520 CustomVaidatorでもクライアントスクリプトでのカスタム検証ぐらいできるけどな 毎回似たようなコード書かないとダメだが この手間と検証タイミングの問題だけクリアできるならCustomVaidatorでも充分だろ
543 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:41:36.27 ID:0IhXUzhb.net] >>521 CustomValidatorもうちょい調べた クライアントサイドの検証は出来た でも検証前後に処理をフックするってのがやっぱり出来ない 結局のところカスタムコントロールで検証もやってしまった方が良さそう
544 名前:デフォルトの名無しさん [2016/09/10(土) 16:11:25.20 ID:Wm1HNmHU.net] ファイル選択ダイアログを使ったプログラムを組んでいます。 OpenFileDialog ofd = new OpenFileDialog(); .csv ファイルのみ選択可能な状態にしたいのですがこの指定では エラーになってしまいます。どう修正すれば良いでしょうか? ofd.Filter = "CSVファイル(*.csv)";
545 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 16:14:00.08 ID:/+pbEB3C.net] MSDNの解説読もう
546 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 16:14:42.14 ID:nYtOzCtO.net] openfiledialog 拡張子 制限 でぐぐれ
547 名前:デフォルトの名無しさん [2016/09/10(土) 17:18:14.52 ID:Wm1HNmHU.net] >>525 サンクス 解決
548 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 17:40:43.95 ID:qbdJrNQP.net] っていうか、F1叩くだけでMSDNがすぐ見られるのに なんでわざわざより手間をかけて2chで質問するのよw そこが理解できんよw
549 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 17:47:35.88 ID:nYtOzCtO.net] そら無能だからだよ。そんなこともわからないのかよw
550 名前:デフォルトの名無しさん [2016/09/12(月) 17:41:15.35 ID:tEgJE/3d.net] 素人です CommonSaveFileDialog で [ファイルの種類] を変えてもファイル名に反映されません SaveFileDialog のように拡張子を自動で付加できるようにする方法を教えてください
551 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:43:59.26 ID:aOoYdSpX.net] 初心者むけのスレがあるよ ふらっと c#って名前
552 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:45:44.98 ID:6Vx7Y6GR.net] FileAsShellObject.ParsingName
553 名前:529 mailto:sage [2016/09/12(月) 18:17:48.59 ID:tEgJE/3d.net] >>530 ありがとうございます 今後利用します >>531 ありがとうございます しかしながらこちらを使っても結果が FileName と変わらないのです ShowDialog の後に取得していますが当方の使い方が違ってます?
554 名前:529 mailto:sage [2016/09/12(月) 18:34:28.38 ID:tEgJE/3d.net] すみません解決しました DefaultExtension を指定するとおkなようです そうしてたつもりがちゃんと出来てませんでした
555 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:24:50.81 ID:NBzoNAq4.net] すみません。Moq について質問です。 インタフェースをMock化した時とか、Setupしていないメソッドやパラメータが呼ばれた時に例外を吐くように設定したいのです。 入り組んでいて、何が呼ばれるのか追いかけるのに疲れました。 例外を吐いてくれれば、Setupしなくちゃと分かるので、デフォルトで例外を吐くような機能があるんじゃないか? と、ググろうとして・・・思いつきませんでした。 どうすれば良いでしょうか? ・・・とか書いていたら、自己解決してしまいました。 https://github.com/Moq/moq4/wiki/Quickstart#customizing-mock-behavior に var mock = new Mock<IFoo>(MockBehavior.Strict); としろと。 ちなみに var mock = new Mock<Foo>(MockBehavior.Strict); とインスタンス化出来る実体があると、そいつのインスタンスを作って、Proxyとして動いてしまった・・・ インターフェース抽出してMock作る必要があるのか。 そして、このレスは某所に誤爆していたものを転載・・・
556 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:32:21.46 ID:QeXjnd/u.net] そういうつぶやきはTwitterがいいと思うぞ
557 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:53:11.09 ID:Spuf+iD1.net] アロエにでも聞いてもらえー
558 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:14:03.89 ID:gHnq4He4.net] Mockフレームワークは仕事を増やすだけ
559 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:57:08.07 ID:Cj/yMtkH.net] モックは自分に都合のいい脳内彼女を相手に恋愛の練習してるようなもんだからな
560 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 22:11:05.27 ID:18iMvBey.net] 夢から覚めなきゃあそれで十分だあ
561 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 22:28:27.16 ID:xWhZtUbs.net] おじさんが子供の頃樫木モックってアニメがありました
562 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 07:26:46.50 ID:LunKPrNc.net] 脳内彼女が正しい応答をすることをどうやって保証するんだろうな (return thisを除く)メソッドの戻り値やgetterをあまり使わない「言いっぱなし」が基本の ガチなOOPならインラインのモックは有効だけど、そうでないなら 普通にボトムアップでやるか、どうしてもモックが必要なところ(IOなど)はちゃんと正しく実装した再利用可能なクラスを作ったほうがいい
563 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 00:22:09.05 ID:cOwk44uY.net] ユニットテストは品質保障ではなく開発者のためのテストの意味合いが強い だからモックが正しい動作をするという保障は必要ないんだよ 開発者が納得して開発の助けになればそれでいい
564 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 11:32:54.80 ID:oYgGfkv1.net] ロジックの奥の方でたまにしか使わないようなのを隅々までテストするには有効
565 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 14:00:54.96 ID:yvgHPK9s.net] C#のファイナライザって同時に複数のスレッドで走る事ってあるんですか? またはアプリケーションのスレッドと同時に動く事はあったり? ファイナライザでスレッドセーフ意識していないコードを書いても特に何も問題は起きていないようなのですが、たまたまでしょうか。 https://msdn.microsoft.com/ja-jp/library/ff647790.aspx 「このため、Microsoft は将来的に、CLR で複数のファイナライザ スレッドを実装することを選択するかもしれません。」 とありますが、これが書かれたのは2005年です。もう変わっていたりして?
566 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 16:29:11.82 ID:78bORDZY.net] ファイナライザは最後の手段だから、そんな複雑さを伴う処理は書かないのが無難。
567 名前:デフォルトの名無しさん [2016/09/24(土) 16:49:31.44 ID:g/gfVTwZ.net] 複数のスレッドからファイナライザを呼び出すような作りって、あまり良い作りとは思えないけどな。(ボソッ
568 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 18:16:20.97 ID:KT7brPF3.net] スレッドセーフかどうかと、再入可能かどうかをごっちゃにしてる気がする。(ボソッ
569 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 18:45:43.08 ID:K7zHMZhh.net] (ボソッ ↑何これ
570 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 19:38:48.75 ID:Ww4Eww29.net] プライドと承認欲求と予防線を混ぜて発酵させたもの
571 名前:デフォルトの名無しさん mailto:sage [2016/09/24(土) 19:59:25.35 ID:hsY2X9yo.net] (^o^)ノ<つぶしあえー
572 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 00:41:50.01 ID:rJ2xXuAE.net] 階層構造もいい具合に空気読んでマッピングしてくれるマッパーってないの?
573 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:04:59.08 ID:D+6ASUN2.net] string[] arr = { "aa", "bb", "cc" }; として、 var dic = new Dictionary<string, string[]>{ { "1", arr }, { "2", { "aa", "bb", "cc" } } // エラー }; とすると二番目でエラーが出るのですが何故でしょうか?
574 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:19:47.71 ID:w5gpFchP.net] String[]がnewされてないから
575 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:22:44.52 ID:D+6ASUN2.net] >>553 でも一番目はエラーしないのですが。 なぜでしょうか?
576 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:26:44.53 ID:0EtDfixS.net] >>552 { "2", new [] { "aa", "bb", "cc" } } { "aa", "bb", "cc" }だけじゃ、型推論で(stringの)配列か判断出来ない。 arrの方は宣言時に型を指定してる。
577 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:29:00.59 ID:D+6ASUN2.net] >>555 >{ "aa", "bb", "cc" }だけじゃ、型推論で(stringの)配列か判断出来ない。 でも最初に new Dictionary<string, string[]>{ としているので、二番目の引数はstring[]だと推論出来るんじゃないですか?
578 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 03:42:17.76 ID:0EtDfixS.net] 言われてみたらそうだね。
579 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 04:22:18.90 ID:9c0zm0tq.net] エラーメッセージ見て推論できないのは頭が悪い
580 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 04:36:36.79 ID:w5gpFchP.net] 確認したら型推論関係なくただの文法エラーだった
581 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 04:55:56.67 ID:D+6ASUN2.net] >>559 エラーしない一行目のarrをそのまま置き換えたのが二行目なのに なぜ文法エラーになるのでしょうか?
582 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 05:04:50.31 ID:w5gpFchP.net] エラーが出た部分をコンパイラが配列初期化子として認識していない模様 同じ文でも構文解釈の位置によって意味が変わることはままある
583 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 05:35:54.50 ID:jYmbv1HX.net] new string[] {"a", "b"} を {"a", "b"} のように省略できるのはフィールドとローカル変数の宣言時だけ
584 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 08:16:29.35 ID:l7d7Fmom.net] 今時new省略の配列初期化子なんか使わない方がいいよ 型推論が無かった頃の遺物で一貫性がない
585 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 09:35:34.37 ID:w5gpFchP.net] language specificationを改めて見返したら 配列初期化子のnewが省略できるって記載はないのな 前の版にはあったのかな
586 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 10:51:33.37 ID:l7d7Fmom.net] >>564 記載があるとしたら変数の宣言や初期化のところじゃない? new省略の配列初期化子は最近のC#でいう初期化子とは別物で、正確には配列初期化子というより配列型の変数宣言の特別な形だと思う
587 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 22:01:53.19 ID:SnclXywq.net] Cから入ってテキスト何冊か終わらせてからC♯にきたけど、 Cよりも感覚的に理解できるように作られていると感じた。 だがやっぱりCと混同してしまう部分が多くて困るな 学習が進めば頭の中で区分できるようになるんだろうが 相談じゃないな すまん
588 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 22:33:12.99 ID:zETe1SmY.net] CもC#も大差ない 便利な構文やクラスが沢山あるってだけ 明確な違いはメタデータぐらいじゃないかな
589 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 22:42:28.47 ID:0EtDfixS.net] GCは?
590 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:15:25.90 ID:+YkJQBGH.net] *や[]や関数ポインタが絡んだときの宣言みたいな汚くて読みづらい文法がないだけ C#の方が理解しやすいよね。 配列も文字列も普通に型だし。
591 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:44:37.52 ID:YTcGpOzN.net] >>567 大差ある
592 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:46:25.85 ID:tLj3yCec.net] 文字列はchar配列らしいけど、配列は型じゃないの? Cって配列型じゃないの?
593 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:48:59.35 ID:l7d7Fmom.net] Cに配列型なんか無いよ 連続領域の先頭を指すポインタを配列に見立てているだけ
594 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:50:01.43 ID:tLj3yCec.net] それC#でも同じじゃない? C#でも var arr=new int[n]; でarrに入るのは参照だし
595 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 23:51:25.88 ID:l0rgfbC+.net] 文法とか変数とか型とかポインタはどうでもいいがイベントが楽だからC#からCに移ろうとは思わないな
596 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 00:16:59.13 ID:2rDNP5fm.net] >>570 ないよ 出来ることは変わらない 書くのが楽か面倒か それだけ
597 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 00:55:28.97 ID:x7JpDQQH.net] >>575 それってc#もCOBOLも大差ないって言うのと同じことだよね
598 名前:デフォルトの名無しさん [2016/09/28(水) 01:03:23.10 ID:CvBOyBja.net] 大差ありすぎてワロタw
599 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 04:44:15.09 ID:y3I7X+UO.net] 大差の定義によるな
600 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 05:07:27.92 ID:ksAc0l/t.net] ネイティブコードにコンパイルできるか否か 弱い静的型付けか強い静的型付けか オブジェクト志向か否か GCあるか否か ぱっと思いついた違い
601 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 06:19:58.62 ID:2rDNP5fm.net] 全部同じじゃんそれ
602 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 07:16:59.51 ID:6UKmmY9W.net] >>575 > 書くのが楽か面倒か 大差あるやん w
603 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 08:00:45.42 ID:Iarxs+Xo.net] >ネイティブコードにコンパイルできるか否か これはまあ、言語じゃなくて環境の問題ではあるけどな 理屈の上では、C#からネイティブコードを吐き出すコンパイラを作る事も出来る 絶対やらないだろうが
604 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 08:02:41.33 ID:Iarxs+Xo.net] ……と思ったけど Microsoft .NET Native とかあったなそういや
605 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 08:31:46.55 ID:hdyJqyrv.net] とっくにUWPアプリはネイティブですよ。
606 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 08:34:31.32 ID:Ks5fZMDV.net] なにそれおいしいの?
607 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 09:05:27.32 ID:ksAc0l/t.net] 型付けの強さ弱さを同じって言われて俺びっくりしちゃったよ
608 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 09:37:17.20 ID:nPlGLTXy.net] >>585 レイアウト変更のもたつきなどの、C#特有のもっさり感がないよ
609 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 09:47:06.51 ID:JharV+Ri.net] 作ったUWPアプリ環境によってインストールできなくて挫折したな
610 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 11:10:40.15 ID:RDlboUCA.net] Cって静的言語だから型は同じじゃないの?
611 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 16:45:21.87 ID:wFbSwOZd.net] 汎用デリゲートのEventHandlerを使用した場合のメリットについて教えてほしいのですが、これを使用するとデリゲート定義の1行を省けることを超えるメリットはあるのでしょうか?
612 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 17:43:08.72 ID:t2Y8uX7u.net] >>590 発想が逆立ちしてるよ。 普通は、標準で用意された方法を超えるメリットがないのであれば あえて独自のデリゲートを使う理由はないと考えるんじゃないの?w それって車輪の再発明そのものだよねw
613 名前:デフォルトの名無しさん mailto:sage [2016/09/28(水) 18:34:02.96 ID:1e7C4OQD.net] いやまて、イベント以外のデリゲートに使おうとしてるのかもしれんぞw
614 名前:デフォルトの名無しさん [2016/09/28(水) 18:55:03.29 ID:wFbSwOZd.net] そうか、標準のもので済めばそれを使うのが当然なのか 根本が間違ってた ありがとう
615 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 15:45:21.13 ID:GKXbaAQ5.net] >>569 それを汚ないと感じる人と 美しいと感じる人もいるんじゃないか?
616 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 18:05:53.95 ID:42KzZhvK.net] >>594 void (*signal(int sig, void (*func)(int)))(int); 美しいかどうかは美的感覚の問題だから人それぞれとしか言えないが、 少なくとも俺は上みたいな宣言を見せられたとき、これが何を意味しているのか 瞬時には理解できない。 「汚い」っていうのはそういうことを表現したつもり。
617 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 19:40:25.50 ID:wDlER99I.net] kmaebashi.com/programmer/pointer.html これを読んだうえでCのポインタの文法が美しいと感じる奴がいたら逆に凄い
618 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 19:54:22.23 ID:iqK/HxMj.net] コード見たときにそれが何を指してるのか分かりやすいのはCの方だな
619 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 20:14:20.56 ID:/kH+f7Ja.net] >>595 ああああああ なつかしいいいいい UNIXもしくはLinuxか何かでみたぞおおおおおお もう絶対こんな仕事に戻りたくないぃいいいいいい
620 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 20:22:33.12 ID:1Mz/tgYS.net] コードの動作が分かりやすいのはC コードの意図が分かりやすいのはC# 言語の差というより、コードをマシンへの命令と考えるかプログラマの意図を表現するものと考えるかという意識の違いが大きいと思う do if (*src != ' ') *(dest++) = *src; while (*(src++)); Cはこういうの平気で書き散らす基地外が多い
621 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 20:29:29.53 ID:/kH+f7Ja.net] K&Rの時代は終わったんだよ
622 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 21:34:42.13 ID:IEWEZKBK.net] 20年前にFM-TOWNS()でCから入ったが今の時代にガキだったらCだのC++だのは一切触らなかっただろうなーと思う かといってphpやjavascriptから入るのはアレだしc#最高^^
623 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 21:37:33.67 ID:o/Z16MWz.net] >>599 いやそのコードはおかしいけどな。多分以下。 while (*src!=0) *dest++ = *src++; それをキチガイというのは自由だが、Cならこれを読めない奴は馬鹿扱いだよ。 初心者は常に「自分の読めないコードは、コードが悪い」としか言わないのだけど、 実際はその初心者の技術レベルに問題がある場合の方が多い。 599はこれだね。
624 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 21:57:51.11 ID:iqK/HxMj.net] 読めないのは馬鹿ってのは同感 そういうのを書き散らすのは基地外ってのも同感
625 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:01:24.13 ID:1Mz/tgYS.net] >>602 いや599はスペースを除去してるんだけどな 正直わざと分かりにくく書いたから602の技術レベルを疑うつもりはないけど、 分かり難さを証明してくれてどうもありがとう
626 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:02:54.74 ID:Js+ntQYt.net] >>602 完全にスレ違いだけど、そういう同じポインタを2回手繰ってるのって コンパイラは最適化してくれるのかな。 っていうか while ((*dest++ = *src++) != 0); って書いても読みやすさは変わらないと思うんだけど
627 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:05:00.53 ID:Js+ntQYt.net] ああ、0コピーしたらダメな場合は使えないのかw ボケてるな
628 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:37:37.49 ID:o/Z16MWz.net] >>604 ああよく見ればそうだな。てかスペース見えんかった。 俺はプログラミングは固定ピッチフォントでやる派なので。 つか脱線でさらにスレチだがC++の開祖がプロポーショナル派で、 「プログラミング言語C++」もそれで印刷されているのだが、読みにくくてかなわん。 >>605 俺は余り詳しくないのだが、その範囲で話をすると、 K&R第2版P129には、そういう場合は while (*dst++ = *src++) にしろと書いてあるわけだが、実際はこの書き方はwarinigが出る環境の方が多いと思う。 したがっておそらく最適化はやってもらえる(はず。volataileでない限り。) >>595 も本来はtypedefやマクロを使えばもっと綺麗に書けるし、多分それが普通。 悪い例を出しても言語間の比較にはならないよ。 どの言語でも糞な書き方は出来るから。(比較的C#はそうなりにくいのは認めるが)