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


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

C#, C♯, C#相談室 Part91



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が建てる事。
建てられない場合は他を指定する事。

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#はそうなりにくいのは認めるが)

629 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 22:39:05.84 ID:o/Z16MWz.net]
>>607
すまんセミコロン抜けてた。

while (*dst++ = *src++);

630 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 23:01:59.93 ID:AR+VWIbJ.net]
なんのスレなんだここ



631 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 23:05:32.42 ID:URePwP35.net]
Swiftでも++は削除されたし、考え方次第なんだよなー
近代的な文法がないCではしょうがないんだろうが

632 名前:デフォルトの名無しさん mailto:sage [2016/09/29(木) 23:40:01.94 ID:o/Z16MWz.net]
>>610
マジ?と思って調べたら、どうやらそのようだ。つか、Pyshonも無いんかよ。
https://github.com/apple/swift-evolution/blob/master/proposals/0004-remove-pre-post-inc-decrement.md

Cとは生まれた時期も目的も異なるからどちらがいいという問題ではないが、
Cで問題だった箇所を一つずつ潰すのも新しい言語のやるべき事だよ。
主張はそこに書いてある。同意するわけではないが、まあそういう見方もあるわなくらいには思う。

ただCは何だかんだで多分生き残る。
あれはほぼアセンブラで、限界までチューニングするにはあの記法が必要だから。
対してC#やSwiftやPythonは生産性/可読性重視だから、
おそらく次の新しい言語が出てきたら取って代わられる。

「近代的」っていうのはそういうこと。時間が経つにつれて「前近代的」になる。
これは近代的言語の宿命だね。
そしてCは「前近代的」でも生き残る価値があるから現存している。

ただ、++で問題を感じたことはないんだけどな。
そこの例に挙げられている
> foo(++a, a++)
をやる奴は死ねでいいけど、
これは引数の評価順を規定してないのが問題で、別問題。

633 名前:デフォルトの名無しさん [2016/09/30(金) 00:10:14.41 ID:cU7plTv4.net]
Pyshonて何だよ?と思ってggったら、ホントにあるのな。

634 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 00:22:32.29 ID:WN9yrU4I.net]
Cがわかりにくいのって記号が物理的に見にくいだけだろ
概念的な難易度はC#と変わらん

635 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 00:51:09.49 ID:27JQ5kO2.net]
Perl「特に見にくくなんて無いよ」

636 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 03:34:02.05 ID:gTc+8iAX.net]
>>595
調子こいたラムダ式とかもだめだよな!

637 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 06:37:26.14 ID:4hxo3I+i.net]
結局プログラマの能力の問題
現状だと調子こいたラムダ式書ける奴は比較的スキルが高いからコード綺麗だよ

638 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 06:55:45.86 ID:Y6l190wq.net]
c#でウオッチ1には表示されるのですが、
ウオッチ2や3のウインドウにもウオッチさせる方法を教えてください

639 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 08:30:41.85 ID:2XfoFLHG.net]
コードのキレイ汚いは感覚論だから議論しても仕方がない
でもラムダを使ったコードはコードの重複が少なく結合が弱いから誰が扱っても保守しやすいプログラムになるのは確かだね

640 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 09:34:42.41 ID:2XfoFLHG.net]
何より言語やライブラリ、フレームワークがラムダを当たり前の存在として扱っている以上使わないという選択肢はない
キレイ汚いという個人的感情によるワガママは通じないのだ



641 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 09:50:48.57 ID:XrkqBYg2.net]
○○を使ってたら汚いコードになるってことじゃないんだよな
そういうことがわかってないと汚いコードになる

642 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 10:10:00.28 ID:Ik8fs/0i.net]
それより審美眼の足りない奴を蹴り出した方が効果的

643 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 20:45:54.67 ID:0SPCdJff.net]
審美眼でコードを書くやつはプロジェクトから追い出したほうがいいって
20年前から言われてる
K&Rのコードはさんざん批判されてる
ここは20年前のスレか

保守性の高いだれでも理解しやすいコードを書ける奴が優秀

644 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:00:54.25 ID:bXY+Fxkm.net]
× > 保守性の高いだれでも理解しやすいコードを書ける奴が優秀
○ 馬鹿な俺でも読めるコードを書ける奴が優秀なことにしたい

K&Rのコードが「汚い」という批判はないと思うが。あれはあれで美しい。
勘違いした馬鹿が闇雲にトリッキーなコードを書いたり、
(今まさに関数型()の奴らが同じ事をやっているが)
或いはタイプミスなのか意図的なのか分かりにくかったりするのが問題なだけ。
これらは色々warning等を出して対応されてきた。もちろん最初からSyntaxErrorならそれでよい。

そして「コードが汚い」ってのは今言っているようなせいぜい10数行の局所区画のことではなく、
もっと大きな上位区画での話だろ。意味不明なクラス構成とか。
というか、10行程度のコードなら多少汚くても読めるし、
正しく抽象化されて階層が分かれていれば、
そういうローレベルコード(何かのメソッド等)は一度読んで動くのが分かればそれでおしまいだろ。
問題はそれらを駆使するミドルレベルコードがグダグダな方だと思うし、
それを「コードが汚い」と表現するのだと思うが。

645 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:01:33.75 ID:bXY+Fxkm.net]
というか多分お前らは「自分が読めるコードが綺麗なコード」とする初心者に近い奴が多いのだと思うが、
実際の所、腕のいい奴は「書ける範囲で綺麗なコード」にしているわけで、
結果的に綺麗なだけなコードならいくらでも綺麗にかけるし、
高速化が必要なら多少汚くなっても最適化を施していく。
だから「汚い」と批判するのはそれ以上の物を自分で記述できるときだけにした方がいい。

K&Rに関しては実行速度/リソースについて最適化を施されているわけだから、
それよりも少ないリソースで速く動くソースが書けないのなら、「汚い」とは言うべきではない。
それが読めないのはお前が馬鹿だから。
少なくともそれを書いた奴はお前よりも腕前は上なわけで、
お前でも読めるようなコードを彼等が書くことは可能なわけだし。

例えばソートとか。
APIとして呼ぶ分には中身がどうであれ正しく速く動いてくれればそれでよし。
それが非常に読みにくい物でも、正しく動く限り、速い方が選ばれる。
それを読み

646 名前:ノくいだけの理由で「汚い」とするのはナンセンスでしょ。
K&Rのトリッキーなコードは本来はこういう区画にしか現れないものだよ。
そしてそれは「ソート」として分離されるから、その中身がどんなに汚くても、開発の障害にはならない。
「コードが汚い」ってのは、つまり「これじゃあ今後手を付けられません」って意味だろ。
ソートみたいな局所区画でこれがあてはまることはない。
(実際「汚い」=「読みにくい」のと、
「コードが汚い」との批判=「開発の障害になる」との意見は別物のはず)

問題は、例えば、「ラムダを使うべき場所でラムダを使ってない」とか、逆に、
「ラムダを使うべきでない場所でラムダを使っている」とか、だろ。
要するに簡単な方を使えばいいだけなのだけど、
意識高い奴は「○○の方がいい(キリッ」とか言って無理に使うからおかしな事になる。
[]
[ここ壊れてます]

647 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:05:31.58 ID:GrCnAQwz.net]
ポエマーきもっ、まで読んだ。

648 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:08:03.45 ID:Fmt1sBQd.net]
コードだけでなく2chレスも読みにくいわw

649 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:08:46.30 ID:IoizK4x5.net]
もちろん昔と同じように考える分野もあるけど、多くの場面じゃ昔と今は考え方が違うのよ

650 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:10:25.66 ID:GrCnAQwz.net]
っていうか、説明的な文章を簡潔かつ過不足なく書く能力と
可読的なコードを書く能力はおそらく無関係じゃないと思う

何が言いたいかはお察しくださいw



651 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:13:28.59 ID:EbLE8W48.net]
・ソースが汚いとはクラス構成が変などの大きな区間の事であり10行程度なら問題ない
・多少汚くても速い方がいい
・新機能を無理に使うと汚くなるからやめろ
でおk?

652 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 23:15:30.37 ID:OobEUz+z.net]
むしろこんなに書き込めるんだな
あれか?最新に出てくる画面に1レスだけで全部埋めたりできるのか?






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

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

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