16/09/28 05:07:27.92 ksAc0l/t.net
ネイティブコードにコンパイルできるか否か
弱い静的型付けか強い静的型付けか
オブジェクト志向か否か
GCあるか否か
ぱっと思いついた違い
601:デフォルトの名無しさん
16/09/28 06:19:58.62 2rDNP5fm.net
全部同じじゃんそれ
602:デフォルトの名無しさん
16/09/28 07:16:59.51 6UKmmY9W.net
>>575
> 書くのが楽か面倒か
大差あるやん w
603:デフォルトの名無しさん
16/09/28 08:00:45.42 Iarxs+Xo.net
>ネイティブコードにコンパイルできるか否か
これはまあ、言語じゃなくて環境の問題ではあるけどな
理屈の上では、C#からネイティブコードを吐き出すコンパイラを作る事も出来る
絶対やらないだろうが
604:デフォルトの名無しさん
16/09/28 08:02:41.33 Iarxs+Xo.net
……と思ったけど
Microsoft .NET Native とかあったなそういや
605:デフォルトの名無しさん
16/09/28 08:31:46.55 hdyJqyrv.net
とっくにUWPアプリはネイティブですよ。
606:デフォルトの名無しさん
16/09/28 08:34:31.32 Ks5fZMDV.net
なにそれおいしいの?
607:デフォルトの名無しさん
16/09/28 09:05:27.32 ksAc0l/t.net
型付けの強さ弱さを同じって言われて俺びっくりしちゃったよ
608:デフォルトの名無しさん
16/09/28 09:37:17.20 nPlGLTXy.net
>>585
レイアウト変更のもたつきなどの、C#特有のもっさり感がないよ
609:デフォルトの名無しさん
16/09/28 09:47:06.51 JharV+Ri.net
作ったUWPアプリ環境によってインストールできなくて挫折したな
610:デフォルトの名無しさん
16/09/28 11:10:40.15 RDlboUCA.net
Cって静的言語だから型は同じじゃないの?
611:デフォルトの名無しさん
16/09/28 16:45:21.87 wFbSwOZd.net
汎用デリゲートのEventHandlerを使用した場合のメリットについて教えてほしいのですが、これを使用するとデリゲート定義の1行を省けることを超えるメリットはあるのでしょうか?
612:デフォルトの名無しさん
16/09/28 17:43:08.72 t2Y8uX7u.net
>>590
発想が逆立ちしてるよ。
普通は、標準で用意された方法を超えるメリットがないのであれば
あえて独自のデリゲートを使う理由はないと考えるんじゃないの?w
それって車輪の再発明そのものだよねw
613:デフォルトの名無しさん
16/09/28 18:34:02.96 1e7C4OQD.net
いやまて、イベント以外のデリゲートに使おうとしてるのかもしれんぞw
614:デフォルトの名無しさん
16/09/28 18:55:03.29 wFbSwOZd.net
そうか、標準のもので済めばそれを使うのが当然なのか
根本が間違ってた
ありがとう
615:デフォルトの名無しさん
16/09/29 15:45:21.13 GKXbaAQ5.net
>>569
それを汚ないと感じる人と
美しいと感じる人もいるんじゃないか?
616:デフォルトの名無しさん
16/09/29 18:05:53.95 42KzZhvK.net
>>594
void (*signal(int sig, void (*func)(int)))(int);
美しいかどうかは美的感覚の問題だから人それぞれとしか言えないが、
少なくとも俺は上みたいな宣言を見せられたとき、これが何を意味しているのか
瞬時には理解できない。
「汚い」っていうのはそういうことを表現したつもり。
617:デフォルトの名無しさん
16/09/29 19:40:25.50 wDlER99I.net
URLリンク(kmaebashi.com)
これを読んだうえでCのポインタの文法が美しいと感じる奴がいたら逆に凄い
618:デフォルトの名無しさん
16/09/29 19:54:22.23 iqK/HxMj.net
コード見たときにそれが何を指してるのか分かりやすいのはCの方だな
619:デフォルトの名無しさん
16/09/29 20:14:20.56 /kH+f7Ja.net
>>595
ああああああ
なつかしいいいいい
UNIXもしくはLinuxか何かでみたぞおおおおおお
もう絶対こんな仕事に戻りたくないぃいいいいいい
620:デフォルトの名無しさん
16/09/29 20:22:33.12 1Mz/tgYS.net
コードの動作が分かりやすいのはC
コードの意図が分かりやすいのはC#
言語の差というより、コードをマシンへの命令と考えるかプログラマの意図を表現するものと考えるかという意識の違いが大きいと思う
do if (*src != ' ') *(dest++) = *src; while (*(src++));
Cはこういうの平気で書き散らす基地外が多い
621:デフォルトの名無しさん
16/09/29 20:29:29.53 /kH+f7Ja.net
K&Rの時代は終わったんだよ
622:デフォルトの名無しさん
16/09/29 21:34:42.13 IEWEZKBK.net
20年前にFM-TOWNS()でCから入ったが今の時代にガキだったらCだのC++だのは一切触らなかっただろうなーと思う
かといってphpやjavascriptから入るのはアレだしc#最高^^
623:デフォルトの名無しさん
16/09/29 21:37:33.67 o/Z16MWz.net
>>599
いやそのコードはおかしいけどな。多分以下。
while (*src!=0) *dest++ = *src++;
それをキチガイというのは自由だが、Cならこれを読めない奴は馬鹿扱いだよ。
初心者は常に「自分の読めないコードは、コードが悪い」としか言わないのだけど、
実際はその初心者の技術レベルに問題がある場合の方が多い。
599はこれだね。
624:デフォルトの名無しさん
16/09/29 21:57:51.11 iqK/HxMj.net
読めないのは馬鹿ってのは同感
そういうのを書き散らすのは基地外ってのも同感
625:デフォルトの名無しさん
16/09/29 22:01:24.13 1Mz/tgYS.net
>>602
いや599はスペースを除去してるんだけどな
正直わざと分かりにくく書いたから602の技術レベルを疑うつもりはないけど、
分かり難さを証明してくれてどうもありがとう
626:デフォルトの名無しさん
16/09/29 22:02:54.74 Js+ntQYt.net
>>602
完全にスレ違いだけど、そういう同じポインタを2回手繰ってるのって
コンパイラは最適化してくれるのかな。
っていうか
while ((*dest++ = *src++) != 0);
って書いても読みやすさは変わらないと思うんだけど
627:デフォルトの名無しさん
16/09/29 22:05:00.53 Js+ntQYt.net
ああ、0コピーしたらダメな場合は使えないのかw
ボケてるな
628:デフォルトの名無しさん
16/09/29 22:37:37.49 o/Z16MWz.net
>>604
ああよく見ればそうだな。てかスペース見えんかった。
俺はプログラミングは固定ピッチフォントでやる派なので。
つか脱線でさらにスレチだがC++の開祖がプロポーショナル派で、
「プログラミング言語C++」もそれで印刷されているのだが、読みにくくてかなわん。
>>605
俺は余り詳しくないのだが、その範囲で話をすると、
K&R第2版P129には、そういう場合は
while (*dst++ = *src++)
にしろと書いてあるわけだが、実際はこの書き方はwarinigが出る環境の方が多いと思う。
したがっておそらく最適化はやってもらえる(はず。volataileでない限り。)
>>595も本来はtypedefやマクロを使えばもっと綺麗に書けるし、多分それが普通。
悪い例を出しても言語間の比較にはならないよ。
どの言語でも糞な書き方は出来るから。(比較的C#はそうなりにくいのは認めるが)
629:デフォルトの名無しさん
16/09/29 22:39:05.84 o/Z16MWz.net
>>607
すまんセミコロン抜けてた。
while (*dst++ = *src++);
630:デフォルトの名無しさん
16/09/29 23:01:59.93 AR+VWIbJ.net
なんのスレなんだここ
631:デフォルトの名無しさん
16/09/29 23:05:32.42 URePwP35.net
Swiftでも++は削除されたし、考え方次第なんだよなー
近代的な文法がないCではしょうがないんだろうが
632:デフォルトの名無しさん
16/09/29 23:40:01.94 o/Z16MWz.net
>>610
マジ?と思って調べたら、どうやらそのようだ。つか、Pyshonも無いんかよ。
URLリンク(github.com)
Cとは生まれた時期も目的も異なるからどちらがいいという問題ではないが、
Cで問題だった箇所を一つずつ潰すのも新しい言語のやるべき事だよ。
主張はそこに書いてある。同意するわけではないが、まあそういう見方もあるわなくらいには思う。
ただCは何だかんだで多分生き残る。
あれはほぼアセンブラで、限界までチューニングするにはあの記法が必要だから。
対してC#やSwiftやPythonは生産性/可読性重視だから、
おそらく次の新しい言語が出てきたら取って代わられる。
「近代的」っていうのはそういうこと。時間が経つにつれて「前近代的」になる。
これは近代的言語の宿命だね。
そしてCは「前近代的」でも生き残る価値があるから現存している。
ただ、++で問題を感じたことはないんだけどな。
そこの例に挙げられている
> foo(++a, a++)
をやる奴は死ねでいいけど、
これは引数の評価順を規定してないのが問題で、別問題。
633:デフォルトの名無しさん
16/09/30 00:10:14.41 cU7plTv4.net
Pyshonて何だよ?と思ってggったら、ホントにあるのな。
634:デフォルトの名無しさん
16/09/30 00:22:32.29 WN9yrU4I.net
Cがわかりにくいのって記号が物理的に見にくいだけだろ
概念的な難易度はC#と変わらん
635:デフォルトの名無しさん
16/09/30 00:51:09.49 27JQ5kO2.net
Perl「特に見にくくなんて無いよ」
636:デフォルトの名無しさん
16/09/30 03:34:02.05 gTc+8iAX.net
>>595
調子こいたラムダ式とかもだめだよな!
637:デフォルトの名無しさん
16/09/30 06:37:26.14 4hxo3I+i.net
結局プログラマの能力の問題
現状だと調子こいたラムダ式書ける奴は比較的スキルが高いからコード綺麗だよ
638:デフォルトの名無しさん
16/09/30 06:55:45.86 Y6l190wq.net
c#でウオッチ1には表示されるのですが、
ウオッチ2や3のウインドウにもウオッチさせる方法を教えてください
639:デフォルトの名無しさん
16/09/30 08:30:41.85 2XfoFLHG.net
コードのキレイ汚いは感覚論だから議論しても仕方がない
でもラムダを使ったコードはコードの重複が少なく結合が弱いから誰が扱っても保守しやすいプログラムになるのは確かだね
640:デフォルトの名無しさん
16/09/30 09:34:42.41 2XfoFLHG.net
何より言語やライブラリ、フレームワークがラムダを当たり前の存在として扱っている以上使わないという選択肢はない
キレイ汚いという個人的感情によるワガママは通じないのだ
641:デフォルトの名無しさん
16/09/30 09:50:48.57 XrkqBYg2.net
○○を使ってたら汚いコードになるってことじゃないんだよな
そういうことがわかってないと汚いコードになる
642:デフォルトの名無しさん
16/09/30 10:10:00.28 Ik8fs/0i.net
それより審美眼の足りない奴を蹴り出した方が効果的
643:デフォルトの名無しさん
16/09/30 20:45:54.67 0SPCdJff.net
審美眼でコードを書くやつはプロジェクトから追い出したほうがいいって
20年前から言われてる
K&Rのコードはさんざん批判されてる
ここは20年前のスレか
保守性の高いだれでも理解しやすいコードを書ける奴が優秀
644:デフォルトの名無しさん
16/09/30 23:00:54.25 bXY+Fxkm.net
× > 保守性の高いだれでも理解しやすいコードを書ける奴が優秀
○ 馬鹿な俺でも読めるコードを書ける奴が優秀なことにしたい
K&Rのコードが「汚い」という批判はないと思うが。あれはあれで美しい。
勘違いした馬鹿が闇雲にトリッキーなコードを書いたり、
(今まさに関数型()の奴らが同じ事をやっているが)
或いはタイプミスなのか意図的なのか分かりにくかったりするのが問題なだけ。
これらは色々warning等を出して対応されてきた。もちろん最初からSyntaxErrorならそれでよい。
そして「コードが汚い」ってのは今言っているようなせいぜい10数行の局所区画のことではなく、
もっと大きな上位区画での話だろ。意味不明なクラス構成とか。
というか、10行程度のコードなら多少汚くても読めるし、
正しく抽象化されて階層が分かれていれば、
そういうローレベルコード(何かのメソッド等)は一度読んで動くのが分かればそれでおしまいだろ。
問題はそれらを駆使するミドルレベルコードがグダグダな方だと思うし、
それを「コードが汚い」と表現するのだと思うが。
645:デフォルトの名無しさん
16/09/30 23:01:33.75 bXY+Fxkm.net
というか多分お前らは「自分が読めるコードが綺麗なコード」とする初心者に近い奴が多いのだと思うが、
実際の所、腕のいい奴は「書ける範囲で綺麗なコード」にしているわけで、
結果的に綺麗なだけなコードならいくらでも綺麗にかけるし、
高速化が必要なら多少汚くなっても最適化を施していく。
だから「汚い」と批判するのはそれ以上の物を自分で記述できるときだけにした方がいい。
K&Rに関しては実行速度/リソースについて最適化を施されているわけだから、
それよりも少ないリソースで速く動くソースが書けないのなら、「汚い」とは言うべきではない。
それが読めないのはお前が馬鹿だから。
少なくともそれを書いた奴はお前よりも腕前は上なわけで、
お前でも読めるようなコードを彼等が書くことは可能なわけだし。
例えばソートとか。
APIとして呼ぶ分には中身がどうであれ正しく速く動いてくれればそれでよし。
それが非常に読みにくい物でも、正しく動く限り、速い方が選ばれる。
それを読み�
646:ノくいだけの理由で「汚い」とするのはナンセンスでしょ。 K&Rのトリッキーなコードは本来はこういう区画にしか現れないものだよ。 そしてそれは「ソート」として分離されるから、その中身がどんなに汚くても、開発の障害にはならない。 「コードが汚い」ってのは、つまり「これじゃあ今後手を付けられません」って意味だろ。 ソートみたいな局所区画でこれがあてはまることはない。 (実際「汚い」=「読みにくい」のと、 「コードが汚い」との批判=「開発の障害になる」との意見は別物のはず) 問題は、例えば、「ラムダを使うべき場所でラムダを使ってない」とか、逆に、 「ラムダを使うべきでない場所でラムダを使っている」とか、だろ。 要するに簡単な方を使えばいいだけなのだけど、 意識高い奴は「○○の方がいい(キリッ」とか言って無理に使うからおかしな事になる。
647:デフォルトの名無しさん
16/09/30 23:05:31.58 GrCnAQwz.net
ポエマーきもっ、まで読んだ。
648:デフォルトの名無しさん
16/09/30 23:08:03.45 Fmt1sBQd.net
コードだけでなく2chレスも読みにくいわw
649:デフォルトの名無しさん
16/09/30 23:08:46.30 IoizK4x5.net
もちろん昔と同じように考える分野もあるけど、多くの場面じゃ昔と今は考え方が違うのよ
650:デフォルトの名無しさん
16/09/30 23:10:25.66 GrCnAQwz.net
っていうか、説明的な文章を簡潔かつ過不足なく書く能力と
可読的なコードを書く能力はおそらく無関係じゃないと思う
何が言いたいかはお察しくださいw
651:デフォルトの名無しさん
16/09/30 23:13:28.59 EbLE8W48.net
・ソースが汚いとはクラス構成が変などの大きな区間の事であり10行程度なら問題ない
・多少汚くても速い方がいい
・新機能を無理に使うと汚くなるからやめろ
でおk?
652:デフォルトの名無しさん
16/09/30 23:15:30.37 OobEUz+z.net
むしろこんなに書き込めるんだな
あれか?最新に出てくる画面に1レスだけで全部埋めたりできるのか?
653:デフォルトの名無しさん
16/09/30 23:28:51.36 IoizK4x5.net
>>629
行数の問題じゃない。1行でも汚いのはあるし、変数名一つとっても汚らしいのがある
今は遅くても可読性、拡張性、保守性を重んじるケースの方が多い
新機能は汚いわけじゃない。互換性とかそれまで認知されてなかったトラブルを産む原因になるだけ
654:デフォルトの名無しさん
16/09/30 23:41:02.45 bXY+Fxkm.net
>>629
・「ソースが汚い」と批判される場合は
全体的にナンセンスか必要のない箇所で最適化をしている場合。
必要な箇所での最適化で結果的に著しく可読性が落ちたとしても
「ソースが汚い」と批判されることはない。
・速さが必要ない箇所では最適化せずに、一番単純な記述にしろ。
・新機能は便利だから追加されたのだから、積極的に使えばいい。
ただし使えばいいって物ではない。
655:デフォルトの名無しさん
16/09/30 23:44:22.04 Mpnnp+Nc.net
仕様上どうしても実行速度が必要な部分を除いては、可読性の高さは実行速度より優先されるべき
656:デフォルトの名無しさん
16/09/30 23:56:07.59 bXY+Fxkm.net
>>633
同意。
なんか早すぎる最適化はうんたんってのがあるんだろ。
コードの9割以上は速度はどうでもいい箇所なので、可読性をとるべき。
糞どうでもいい箇所をこねくり回してワケワカメなコードにする奴はハゲろ。
(言っちゃあ悪いが関数型()な奴はこれをやっている気がものすごくする)
あと言語のポリシーにもよるでしょ。
C#はC程のチューニングをする為の言語じゃない。
それこそ、C#なら全箇所で(速度は全く気にせず)可読性重視というのもありだと思うよ。
そもそもどうしても速度が必要ならCでDLL書いた方が速いし早い。
657:デフォルトの名無しさん
16/10/01 01:11:38.55 TCy40dPy.net
コードの綺麗さは実は定量化できる
わかりやすいので言えば重複するコードがどれぐらいあるかとかな
658:デフォルトの名無しさん
16/10/01 01:26:55.75 5I4x+GEM.net
関数型は親の仇、まで読んだ。
いつの間にか老害になってた、ってのもよくある話。
659:デフォルトの名無しさん
16/10/01 02:28:35.54 tNbhSEQ7.net
>>623,624の可読性は定量的に表すといくつですか?
660:デフォルトの名無しさん
16/10/01 02:48:45.62 MIaIeT8n.net
3
661:デフォルトの名無しさん
16/10/01 04:34:25.08 Cx/cD9Km.net
評価に価しない
662:デフォルトの名無しさん
16/10/01 07:03:52.26 aUiPvlDm.net
要するにアンチパターン
663:デフォルトの名無しさん
16/10/01 13:30:51.56 b8SZy0Th.net
>>623
コードに審美眼とかうるさい奴は死にかけのPerlに行けよ
死ぬ程美しいコードだらけだぞ
副作用だらけの可読性や保守性が全然ない糞みたいな世界にいけばいい
664:デフォルトの名無しさん
16/10/01 17:32:33.06 YSehcX6B.net
>>615
調子こいたラムダ式ってどの程度のものを指していますか?具体例を教えて下さい。
665:デフォルトの名無しさん
16/10/01 17:44:54.07 uFiZxscE.net
たぶん「調子こいた『ラムダ式』」では。
666:デフォルトの名無しさん
16/10/01 17:45:58.08 j4WTV/sN.net
ラムダ式の中でも特に調子こいてる物、って事でなくて
ラムダ式自体が調子こいた代物だ、って事かい
667:デフォルトの名無しさん
16/10/01 17:49:57.84 oe6ViUtA.net
匿名メソッドはOKなんですねよかった
668:デフォルトの名無しさん
16/10/01 17:53:16.74 aSQFFfFE.net
>>644
ひでーww
669:デフォルトの名無しさん
16/10/01 18:08:55.65 j4WTV/sN.net
俺の意見じゃなく、>>643を噛み砕いただけだからね
まあ俺も酷いと思うわw
670:デフォルトの名無しさん
16/10/01 18:13:22.35 r6T55aIp.net
ラムダ式「今夜はザキンでシースーよ」
ということですね
671:デフォルトの名無しさん
16/10/01 18:27:04.12 uFiZxscE.net
ザンギにソース?(北海道民感)
>>647
その言い方だと俺が酷いようにみえるんだけどw
672:デフォルトの名無しさん
16/10/01 18:27:22.17 73eR6yvK.net
牛乳を買ってきて卵があったら6個買ってきてね
これで牛乳を6個買ってきた話のようだ。プログラマーってのはめんどくせーなw
673:デフォルトの名無しさん
16/10/01 18:36:06.66 uFiZxscE.net
それは解釈の違いの問題じゃなく、
単なる勘違いというか記憶ミスの話じゃないのか
674:デフォルトの名無しさん
16/10/01 18:47:50.99 MIaIeT8n.net
変なパーサー使ってるんだな
675:デフォルトの名無しさん
16/10/01 19:02:47.22 hMWB8YVJ.net
最後の買ってはコンパイルエラーにしてほしいな
676:デフォルトの名無しさん
16/10/01 20:25:31.09 YSehcX6B.net
ラムダ式使うと調子こいてるヤツと思われるのはit業界の常識ですか?
677:デフォルトの名無しさん
16/10/01 20:27:03.31 R05VqS28.net
>>654
うんにゃ
678:デフォルトの名無しさん
16/10/01 20:34:55.43 roKi/w2g.net
コードの流れに唐突にラムダ式入ってくると邪魔だなって思う
長い奴はメソッドにしてにラムダ式で呼べって思う
679:デフォルトの名無しさん
16/10/01 20:35:59.82 rH9xy5Nb.net
>>654
イテレーター業界?
680:デフォルトの名無しさん
16/10/01 20:38:04.48 roKi/w2g.net
メソッド書かないで引数内で追加できてよかったと思う人もいるんだろうか?
681:デフォルトの名無しさん
16/10/01 20:41:46.11 rH9xy5Nb.net
ラムダ式なしでWhere()とかSelect()使うの苦痛だわw
682:デフォルトの名無しさん
16/10/01 20:44:48.07 wmtSdepv.net
>>650
それとぃってrで見た
683:デフォルトの名無しさん
16/10/01 20:52:06.40 roKi/w2g.net
>>659
そういうのは調子乗ってると思わないけどw
684:デフォルトの名無しさん
16/10/01 22:32:32.05 uFiZxscE.net
普通にメソッド書いたほうが見通しスッキリするんじゃねー?
と思うコードはある、かな……
685:デフォルトの名無しさん
16/10/02 00:04:13.32 ROqN57Sm.net
delegateの演算子オーバーロードは出来ない?
例えば
Func<string, int> f1 f2
な時に
f = f1 | f2;
stringの値によって、f1またはf2を呼び出すfをつくる
みたいな事がしたい。
686:デフォルトの名無しさん
16/10/02 00:31:44.31 jkLbSgMw.net
デリゲートはクラスじゃないから無理でしょうね
c#は関数呼び出し演算子()のオーバーロードもできないからクラスで実装するのも無理
c++なら出来るんだがね
687:デフォルトの名無しさん
16/10/02 04:26:34.74 jWIE31Om.net
トリッキーな脱出条件の再帰コードを見た事がある
見た目はスッキリしてるけどバグを誘発しそうで怖い
688:デフォルトの名無しさん
16/10/02 06:52:07.42 2n6hXS15.net
>>664
そんなトリッキーなことするバカが出ないようにってこと
689:デフォルトの名無しさん
16/10/02 10:05:52.02 jkLbSgMw.net
個人的には別にトリッキーだとは思わないけど
むしろ美しい
URLリンク(ideone.com)
690:デフォルトの名無しさん
16/10/02 10:54:34.82 eq6TYNRH.net
>>667
"個人的"だね、ほんと
691:デフォルトの名無しさん
16/10/02 11:55:26.61 O3UtDhl/.net
個人的だねとの判断も明らかに個人的なものであるが、これいかに
692:デフォルトの名無しさん
16/10/02 12:01:52.13 RfLsthU9.net
>>667
分かりやすくて良いと思う
この辺りをどう感じるかは文理学歴の差が大きいと思う
693:デフォルトの名無しさん
16/10/02 12:07:04.04 aauDOAhV.net
>>667
それって記法上のメリットしかないだろ?
だってベタに書こうと思えば書けるし、大した手間でもない。
だからそういう糞ユーザーの「俺カッケー」を出来なくしてあるのがC#だよ。
inline f
f1(f2(3))
3*f2(3)
3*f1(3)+2*f2(3)
そのコードはテンプレート部(40行目以前)が完全に動くならそれでいい。
ただしそれが保証出来ないのなら、いちいち見ないといけなくなる。
つまり糞ユーザーの「俺カッケー」に付き合わされることになる。
そういうのが開発効率を落とすと判断し、C#は出来なくしてある。
そういうのも含めて全部出来るようにしているのがC++。
C#の判断も一理ある。
694:だから賛同するならC#を使えばいい。 いやならC++を使えばいいだけ。 このケースに関しては、やっていることはOOPスレの10と同じ。 http://echo.2ch.net/test/read.cgi/tech/1467992113/10 便利なことをしているつもりが余計に手間を増やしている。 初心者はこの判断が付かないんだよ。だから1行/1文字でも減らそうとする。 なお俺はその記法について文句を言っているわけではない。 それがシステム側で「バグのない物」として提供されていれば、使えばいい。 ただ、オレオレ記法をしたいだけの為にバグがあるかもしれない物を出されたらウザイだけ。
695:デフォルトの名無しさん
16/10/02 12:25:34.26 OGpfvvty.net
こういう流れを見るとやっぱ文理学歴の差って大きいんだなって実感する
696:デフォルトの名無しさん
16/10/02 12:42:14.69 jkLbSgMw.net
オレオレ記法じゃなくて数学的な記法をプログラムに持ち込んだだけなんだけどね
後バグがあるならやめてほしいと言うけど特にc++規格に明示されてない文法を使ってるってわけでもないし
関数オブジェクトとか(この場合可変長テンプレートとか)を見慣れない人にはトリッキーに見えるだけだと思うな
697:デフォルトの名無しさん
16/10/02 12:52:17.12 +f7TOXbf.net
分かりにくいというか曖昧すぎて理解のしようがない
関数の和や合成と言われても、引数適用や合成の仕方は無数に考えられる
全てがオレオレのフィーリングに基づいた暗黙脳内ルールじゃん
むしろ理系こそ拒否反応起こすわ
698:デフォルトの名無しさん
16/10/02 12:54:43.75 I2UZY42b.net
そう言うことを頻繁にやるならアリだと思うが過去そう言うことをやったことない俺にはできてもできなくてもあまり変わらん
バグまで持ち出して反論してる >>671 はちょっと頭弱い子だと思う
699:デフォルトの名無しさん
16/10/02 12:57:57.60 aauDOAhV.net
>>673
数学の合成関数は f(g(x)) だろ。アホなのか?
700:デフォルトの名無しさん
16/10/02 13:07:15.54 aauDOAhV.net
>>673
なお俺はトリッキーだとは言ってない。
バグを誘発する糞コードを読まされる手間が増えるだけだからウザイと言っている。
その件に関してはベタで書いた方が「全体的には」楽だろ。それだけ。
初心者はこの「全体的」が分からないから局所的な最適化コードに異様にこだわるだけ。
それだけで済んでいればいいけど、通常はそれだけじゃ済まないんだよ。
そして泥沼化するから、C#では最初から禁止している。それだけ。
まあ妥当だと思うよ。
701:デフォルトの名無しさん
16/10/02 13:08:59.70 FGg7v3h+.net
まあラムダがあれば簡単な関数合成する上で特に不便はないな
C++はラムダがない時代が長かったからオペレーターオーバーロードなどを駆使して表記の簡略化、統一化を考える必要があった
702:デフォルトの名無しさん
16/10/02 13:17:42.00 +f7TOXbf.net
演算子オーバーロードの濫用の問題は、全く一般的でないオレオレルールが+などの非常に一般的な表現でコードに撒き散らされることだよ
少なくとも俺には f=f1+f2 と書かれても何のことかさっぱり分からん
うまいこと空気読んで共感してあげるという高度な文系的センスが求められる
703:デフォルトの名無しさん
16/10/02 13:34:10.10 aauDOAhV.net
ちなみにC#からの見方に変えると、
C#の開発時には既にC++があったわけだから、
templateの有効性や演算子オーバーロードの利便性を知らなかったわけではない。
ただ、馬鹿が調子こいて余計に手間が増えることの方が多いと判断したから、落とした。それだけ。
「出来る」ことと「便利になる」は別なんだよ。だから結局の所プログラマ次第。
そして「自前クラス」まで禁止するとstaticおじさんになるというわけさ。
これについてはJava側からの視点で批判的な物が多いけど、
おかしなクラス構成ばかり見せられたら自前クラスも禁止したくなるだろ。
実際、OOPスレ10に対してなら
「お前がクラスを作ることは禁止、どうしても欲しければ相談しろ」というのも現実的な線だよ。
要するにメタプログラミング系は本来は熟練者しか使っちゃいけないのさ。
初心者が「template使える俺カッケー」をするからおかしな事になる。
それってtemplateを使うこと、或いは短く書くことが目的になってるだろ。
手間を減らすこと、コンパクトに書いて規模の限界を緩和することを目的にしろって事だよ。
(クラスも程度は軽いけど結果的に自前フレームワークを用意するという点でメタプログラミングと似ている)
704:デフォルトの名無しさん
16/10/02 13:39:28.09 jkLbSgMw.net
関数の合成といえば(f◯g)(t)=f(g(t))だし
「線形結合できる関数」クラスの例で
関数の和といえば(f+g)(t)=f(t)+g(t)だし数学的にこれ以外ないでしょ
合成はc++に◯記号がないから|を代わりにしただけ
あとあのコードがまるで「普通」のコードよりもバグを誘発しやすいみたいな言い方してるけどなぜそう思うの?
単に見たことない書き方だからそう思ってるんじゃないの?
数学についても、プログラムについても単に知らない人が拒否反応を起こしたり分かりにくいといっているように感じるんだが
705:デフォルトの名無しさん
16/10/02 13:41:46.38 aauDOAhV.net
>>681
てかお前数学知らないだろ?
○って何?ドットなら関数内積で、合成関数ではないぞ。
706:デフォルトの名無しさん
16/10/02 13:43:56.45 aauDOAhV.net
あ、2chで表示できないのだろうからunicodeで頼むわ。
707:デフォルトの名無しさん
16/10/02 13:49:48.57 jkLbSgMw.net
U+2218
URLリンク(www.fileformat.info)
708:デフォルトの名無しさん
16/10/02 13:56:01.58 Tg5OdweU.net
コードの細かい記述方法であれこれルール作りたがるとかチラ裏でやってほしいわ
他人から見たら全く役に立たない
709:デフォルトの名無しさん
16/10/02 14:03:39.03 aauDOAhV.net
>>684
ああこちらでも確認した。そういう表記をすることもあるようだ。
俺は知らんが。
ただ、そういうのを | で代用するようなことをするから演算子オーバーロードは駄目なんだよ。
それが欲しければ、そのコードをそのまま使わないといけない。
そうじゃないと、お前のオレオレクソコードを全員が読まないといけなくなるだろ。
例えばJavaScriptなら、ソースコードはunicodeなのでそれが出来る。
function ○(func0, func1){}
だからその件に関する正しいやり方は、unicode版C++で○を演算子としてサポートすることだ。
ただ、f(g(x))と書けばいいだけのことを新しい演算子を定義するのは無駄だ。
だから現実的にはunicode版C++で○をマクロ等で合成関数に置換することだろう。
(unicode版C++があるかどうかは知らん)
710:デフォルトの名無しさん
16/10/02 14:04:19.38 FGg7v3h+.net
>>680
cppからcsへの変遷の際に危険だが柔軟性の高い機能が取り除かれた理由は、調子こいたバカが増えるからではなく、基本的なスキルのないプログラマが使うことを前提にしたってだけだろう
上で出た関数合成の例だってまともに仕事してるcppプログラマならなんの苦もなくよめる
おや、数値型以外の型に+演算子が定義されているぞ
ああ、オーバーロードしたのね
まっ、文脈から関数合成で、よほどひねくれてなきゃ線形結合だろう
いちお、確認するか…仕様書は…ない
ならソースみよか…(10秒ほど定義を眺める)…うん、さっきの解釈で良いみたいだね
よし、じゃあ楽に見やすくなるならガンガン使おう
cppが出来るレベルではこれが普通の反応であって、読めないという泣き言はプロである以上通じない
csだと逆に、Linqとかあたらしいのわたしよくわからないので禁止!といったようにバカがわからないというだけで、自作の便利なライブラリどころか、標準的なライブラリすら使えなくなってしまう
世間的には同じプログラマとして分類されるけど生きる世界が違うんだよ
711:デフォルトの名無しさん
16/10/02 14:06:04.74 ROqN57Sm.net
自己が見慣れないものを、一見汎用性のありそうな�
712:ウ知な屁理屈つけて拒否しるのって、老化の始まりなのかな。 自戒の意味も込めて。
713:デフォルトの名無しさん
16/10/02 14:09:00.42 FGg7v3h+.net
>>686
さっきからちょっと気になってたんだが
関数を合成するのと関数の評価を続けて行うのは全く別の処理だぞ
どの記号を使うべきか、そもそもオバロすんなとかいう議論以前の話で間違ってる
714:デフォルトの名無しさん
16/10/02 14:20:35.82 +f7TOXbf.net
>>687
そういう考えは規模が大きくなると破綻する
関数合成をする操作があっちゃいけないとは思わないが、定義を思い出すのに十分なラベルを付けるべき
1,2文字の記号と、離れた場所にある型宣言だけではあまりにもヒントが少なすぎるし、演算子は名前空間が小さすぎる
715:デフォルトの名無しさん
16/10/02 14:25:11.07 aauDOAhV.net
>>687
なんかC++の奴らは「選民思想」を持っているようだけど、それは違うと思うんだよ。
そのコードを書いた時点で、バグがある可能性が残ってしまう。
だから見ないといけない。俺はこれが嫌なんだよ。
コード自体は「打ち間違いがない」という前提でなら10-30秒程度だよ。中身は何もやってないから。
だからそれが既に実績のあるライブラリとして提供されていて、その中身の確認ならまあいい。
ただしそれを自前で書かれたら、詳しく確認しなければならないし、全てに当てる検証も必要になる。
そして得られるメリットはちょっと短く書けるだけ。
これは明らかに手間が増えているだろ。
.NET公式で関数合成の演算子として提供されていれば、それを使うことに問題はない。
仮にバグがあったとしても公式側が修正してくれる。(中身の実装について見る必要がない)
自前で書いたら上記の通り手間が増えるだけ。だったらベタで書いた方がマシ。
基本的にC#は「馬鹿が使う」ではなく「ここら辺まででいいよね」という思想だとおもうし、
その判断自体も割と妥当だとは思う。ちょっと窮屈な点はあるけど、致し方なし。
なお俺はC#派ではなくかなりC寄りのC++派ね。(お前らがbetter-Cと言っている奴)
これとは別に、「馬鹿でも使える言語」として使っている奴もいるし、
そいつらが調子こいているのも事実だけど、それは別問題。
716:デフォルトの名無しさん
16/10/02 14:27:32.07 FGg7v3h+.net
>>690
まあ別に俺も演算子を積極的に推奨するわけじゃないけどな
ちゃんとしたcppプログラマなら標準の型に対する演算子の挙動に準ずる動作で演算子を定義するのが良い習慣だってのが常識として知っているわけだし
717:デフォルトの名無しさん
16/10/02 14:28:49.54 aauDOAhV.net
>>689
関数ポインタを返せばいいだけだろ。
いずれにしてもtemplateは静的展開なんだから、ベタに書けない処理はないだろ。
ベタに書くのがいいか、テンプレートを使うか、
これを検証まで含めた「手間」基準で判断しろというのが俺の意見。
718:デフォルトの名無しさん
16/10/02 14:40:47.92 FGg7v3h+.net
>>691
依存先にバグがあるかも~とかそんなんでプログラマやっていけるのか?
演算子使おうが使わないが、やりたいことが関数合成だろうが何か別の処理だろうが、プログラミングするなら、関数やメソッドを定義してモジュール化するのは当たり前の事だろう
むしろ同じ処理をモジュール化しないで、同じようなコピペコードを大量生産するほうが圧倒的に悪じゃん?
この悪を突き詰めるとUIのイベントハンドラに全ての処理をぐっちゃぐちゃに詰め込むようなキングオブバカになるんだよ
そんなものは誰も望んでいない
処理の重複があればモジュール化するのが当たり前
モジュールにバグがあるのも当たり前でモジュールの保守をするのも仕事のうちだ
演算子がどうのこうのってレベルじゃねえぞ
719:デフォルトの名無しさん
16/10/02 14:42:08.34 FGg7v3h+.net
>>693
レス番間違ってないか?
720:デフォルトの名無しさん
16/10/02 15:00:21.56 aauDOAhV.net
>>694
お前がそう思うのならそれでいいじゃん。
俺は「手間」がかからない方を選ぶ。それだけ。
関数の線形結合なんて普通のプログラミング(例えばブラウザ等の製作)では不要だろ。
だから俺はそれにオーバーロードなんてしないし、必要ならベタに書く。
普通のプログラミングで、その線形結合って何回使うと思っているの?
余程数学的なことをするのであれば関数の線形結合も必要になるのかもしれないけど、
そういうところは既にライブラリなりフレームワークが用意してあり、
演算子も既にオーバーロード済みだったりすると思うよ。
とはいえ、俺とお前は特に何の関係もないわけで、別にお前がそうすることを止めはしない。
それをOSSとして公開してあれば、「馬鹿がいきがってるな」と思うだけ。
そういう俺に対してお前が「馬鹿だな」と思うのも自由だよ。
そういう意味ではいい時代になったね。
721:デフォルトの名無しさん
16/10/02 15:08:10.02 aauDOAhV.net
>>695
間違ってない。
> 関数を合成する (>>689)
に対して「関数ポインタを返せばいいだけ」
俺が671で
> 関数の評価
つまり値を算出したのが気に入らなかったんだろ?
Cでも「関数ポインタを返す関数」というのは普通に定義出来る。
関数合成ってのは別に難しい話でも新しい話でもない。
722:デフォルトの名無しさん
16/10/02 15:25:03.83 FGg7v3h+.net
>>696
なるほどそっちの認識では線形結合のみかつ再利用の機会も少ないという前提の話題だと思っているのね
関数合成や線形結合はあくまで一例であってもっと一般論的な話をしてるつもりなんだが>>694読んでわかんなかったかな?
723:デフォルトの名無しさん
16/10/02 15:30:13.53 aauDOAhV.net
ああすまん、696はレス相手を勘違いしていた。
>>694向けに再度書き直す。
>>694
それは単にDRYなりOAOOだし、基本中の基本だろ。
今更何を言っているんだ?
俺は無駄なコードを書くなと言っているだけ。
使いもしない演算子オーバーロードのコードとかね。
724:デフォルトの名無しさん
16/10/02 15:36:24.07 FGg7v3h+.net
>>697
わからなくなってきたな
君は関数合成をカスタム演算子を使う方法ではなくf(g(x))と表記出来ると言っている
これは関数合成ではなくg(x)を評価した結果を引数にしてfを評価しているだけであって関数を合成する処理ではないよと返した
さらにその返しとして関数ポインタを使えば良いというよくわからない返事が来たのでレス番間違ってないか?って聞いたの
関数ポインタを使ってf(g(x))の表記でfとgを合成するにはどう書けば良いんだろうね
当然だけど|を使った表記より実装がシンプルになってバグがなくなるんだよね君のポリシーからすると
725:デフォルトの名無しさん
16/10/02 15:41:08.17 aAAtYBE2.net
>いちお、確認するか…仕様書は…ない
>ならソースみよか…(10秒ほど定義を眺める)…うん、さっきの解釈で良いみたいだね
ドキュメントがそろってない場合、実際にはオーバーロード関数の実体を見つけるだけでも
一苦労で、10秒どころじゃ済まなかったりするけどな。
初見のコードだと結局デバッガで追いかけるのが一番早かったということも。
726:デフォルトの名無しさん
16/10/02 15:46:00.43 aauDOAhV.net
>>700
> 関数ポインタを使ってf(g(x))の表記でfとgを合成するにはどう書けば良いんだろうね
それが>>595だろ。
> 関数合成の例だってまともに仕事してるcppプログラマならなんの苦もなくよめる(>>687)
流に言えば、まともに仕事してるCプログラマなら何の苦もなく読める。
> 当然だけど|を使った表記より実装がシンプルになってバグがなくなるんだよね
はい。
上記の通り、君の定義の「まともなCプログラマ」なら一瞬で読めるし、
少なくとも | を使っている時点で他の人と組み合わせたらバグを誘発するからアウトだよ。
727:デフォルトの名無しさん
16/10/02 15:51:44.43 FGg7v3h+.net
>>699
すまない
わかってるならいいんだ
君の書いた線形結合かつ再利用の機会の少ない場合に限定したレスを読んでこっちが勝手に一般的な話に拡大してしまっただけだから
線形結合だけできてもまあ確かにそんなに嬉しくはないよね
Boost.Lambdaみたいなライブラリの一部として組み込まれてるならともかくね
728:デフォルトの名無しさん
16/10/02 15:54:11.92 aauDOAhV.net
>>701
君と俺は反対ではないけども、補足をすると、俺が思うに、
「直感的に見たとおりの演算子/メソッドじゃないとオーバーロードしてはいけない。」
いちいち確認する必要があるのなら、そこにベタで書いてあった方がすぐに辿れていい。
729:デフォルトの名無しさん
16/10/02 15:57:16.07 wePFQlkp.net
捨て台詞吐くぐらいなら絡んでこなきゃいいのに...
730:デフォルトの名無しさん
16/10/02 15:57:23.23 FGg7v3h+.net
>>702
それ合成してないじゃん
関数f,gを合成して名前はなんでも良いけどhを作ろうって話してんの
731:デフォルトの名無しさん
16/10/02 16:10:13.27 aauDOAhV.net
>>703
いや先にIDを読み間違えたのはこちらの方だ。
これは俺が悪かった。
> Boost.Lambda
見てみたが、一覧表がないから使えるものかどうかはよく分からん。
ただ俺はこういうのを使うのは賛成、自前で用意するのは反対。理由は、
・バグがない。あったとしても向こうが勝手に直してくれる。
・「普通」の仕様になっているはず。オレオレ演算子アサインはない。
>>706
「まともなCプログラマ」ならそれも一瞬で書けるって事だよ。
ただし見た目は>>595的になる。それを「汚い」とするかはその人次第。
732:デフォルトの名無しさん
16/10/02 16:28:44.65 FGg7v3h+.net
>>707
すまない
関数ポインタの件がよくわからないのだけどサンプルコードはないだろうか
typedef int (*p_func_t)(int);
とあったときに
p_func_t f = ...;
p_func_t g = ...;
int x;
p_func_t h = f(g(x));
と表記してfとgを合成できるような方法があるってことだよね?
733:デフォルトの名無しさん
16/10/02 16:53:20.94 jkLbSgMw.net
俺は関数オブジェクトを使うのによい例を具体的なコードを示して挙げたつもりなわけだが
その例がクソだというなら同じ題材で「まともなCプログラマ」ならどう書くのか
プログラマらしく俺と同じようにideoneにでもコードをあげてほしいよね
いいかげんそうしないと利点欠点の議論ができない
そもそも彼の言っていることがプログラムで実現できるのかも分からないのが現状だしね
734:デフォルトの名無しさん
16/10/02 17:41:34.45 ROqN57Sm.net
レガシーな話は別の場所で。
735:デフォルトの名無しさん
16/10/02 18:37:00.85 4fupdPv1.net
そろそろc++スレへ
736:デフォルトの名無しさん
16/10/02 20:32:46.30 ruQ48W5a.net
>>682
ちいさな中空の○のことだろ
数学でよ~く使う奴
737:デフォルトの名無しさん
16/10/02 21:54:50.86 QFl4EKwL.net
f∘g
738:デフォルトの名無しさん
16/10/03 04:19:54.47 uOsaIQNY.net
何時もfまるgって読んでるけど正式な読み方は何なの?
739:デフォルトの名無しさん
16/10/03 06:05:41.66 70nww6OY.net
この手の話題に電話越し実験とかというのがあったと思う
自分の思っている事を電話越しに話すことを想定して、
相手に伝わらない記号や概念が思い当たったら使うなって話
740:デフォルトの名無しさん
16/10/03 07:58:56.85 K13Pj3xV.net
>>714
それで正しいみたい
URLリンク(izumi-math.jp)
URLリンク(www.comp.tmu.ac.jp)
741:デフォルトの名無しさん
16/10/04 10:32:58.48 7zrfyEQB.net
みんなUIフォントを何にしてる?
メイリオがいいよね?メイリオがいいよね?
742:デフォルトの名無しさん
16/10/04 10:34:40.02 reFXN9x4.net
理由がないかぎりデフォのまま
743:デフォルトの名無しさん
16/10/04 10:53:11.92 6+Zayg+b.net
ふらっととマルチとか他人に共感してもらわないと不安になる病気か
744:デフォルトの名無しさん
16/10/04 10:58:30.13 s22xkPru.net
901 名前:デフォルトの名無しさん (アウアウ Sa17-RPp1)[sage] 投稿日:2016/10/04(火) 10:32:30.59 ID:2uMugtE2a
みんなUIフォントを何にしてる?
メイリオがいいよね?メイリオがいいよね?
745:デフォルトの名無しさん
16/10/05 23:55:13.72 +0VoUMKr.net
C#勉強始めたんですが、初心者がだいたいつまづくポイントってどこだと思いますか?
746:デフォルトの名無しさん
16/10/06 00:04:15.38 7nh5q1fN.net
デリゲートかなあ
747:デフォルトの名無しさん
16/10/06 00:15:35.85 4kR5N43K.net
プログラミング経験ないなら参照型と値型で必ず絶望する
経験あるならデリゲートかな
748:デフォルトの名無しさん
16/10/06 00:32:29.25 zO3yIj3z.net
>>722-723
ありがとうございます
今まさにデリケートでハマってます。。
使い方?使いどころ?を共感できないとうやむやでしょうがないです
749:デフォルトの名無しさん
16/10/06 00:39:52.90 rwN2Tml/.net
デリゲートとかめったに使わないコールバックでしか使ったことがないな
代入かと思っていたら参照だったで面倒なことになった事はある
750:デフォルトの名無しさん
16/10/06 00:45:11.41 TGE1GIM6.net
今時は直接delegateで宣言するようなことはなくなったから
概念は知っておいて、ラムダ式と
Action<T>とかFunc<T>の実用例覚えとけばいいんじゃないですかね
751:デフォルトの名無しさん
16/10/06 00:49:47.22 4V0JRI8n.net
GDI+の機能にかなり頼っていていろいろハマったw
>>726
他の人のソースを参考にしようとしてネットで調べているとdelegateは割と見かける
そのときに解釈するのにハマるかもw
752:デフォルトの名無しさん
16/10/06 01:27:48.67 fMQ+lBRM.net
デリゲートとラムダを滅多に使わないって珍しいね
C#1.0とか2.0の現場なのかな
753:デフォルトの名無しさん
16/10/06 01:30:51.44 4V0JRI8n.net
>>728
いやラムダは普通に使うだろうけどdelegateはむしろ古いソースに多いと思うんだけど
そもそもラムダを滅多に使わないってどのレス?
754:デフォルトの名無しさん
16/10/06 01:34:30.42 NXx8nGJH.net
デリゲートもラムダもインタフェースも一切使わないでアプリ作ってる
参照型と値型はList<T>でハマった
あとDispose
755:デフォルトの名無しさん
16/10/06 02:31:28.02 tWbYPS8o.net
デリゲートで思い出したけど、Delegateを取るメソッドにラムダ式を渡す時、
Actionとか適当なデリゲートにキャストする必要があるけど、これ()が増えて読みづらいんだけど
もうちょっと簡潔に書く方法何かないかね
756:デフォルトの名無しさん
16/10/06 06:42:51.70 fMQ+lBRM.net
>>729
ラムダって多くはデリゲートとセットでは?
757:デフォルトの名無しさん
16/10/06 07:20:21.92 n3wSSvrr.net
・匿名メソッド構文
delegate(int x){ return x * 2; }
・delegate typeの定義
delegate string IntToStringFunc(int i);
・定義済みdelegate
EventHandler,Action,Func,Predicate,...etc...
"delegate"キーワードは使わなくなったけど、delegateは使うね。
758:デフォルトの名無しさん
16/10/06 20:52:22.74 /ETy8QFu.net
ラムダ式って拒絶反応が出るんだけどすんなり使えた?
759:デフォルトの名無しさん
16/10/06 20:53:36.20 roCwyFi8.net
使えたよ
760:デフォルトの名無しさん
16/10/06 21:04:12.56 JthKKgNo.net
アレルギーは病気だからお医者に行くといいよ
761:デフォルトの名無しさん
16/10/06 21:55:32.73 Gk0vxqlO.net
>>734
FAQ過ぎる
762:デフォルトの名無しさん
16/10/06 23:09:44.94 M7jvqMaX.net
C#はじめて触った時点でもうラムダ式あったからあって当然だった
763:デフォルトの名無しさん
16/10/07 00:40:13.77 7KQTkYQu.net
俺もJava初めて触った時点でラムダあったし
5ヵ月間存在知らなかったけど
764:デフォルトの名無しさん
16/10/07 01:58:05.78 zqRixoIp.net
リンクトゥーエスキューエルは?
765:デフォルトの名無しさん
16/10/07 08:14:27.52 zPyY2V4X.net
拒否感というか、実際に使うまでは全然に覚えれんかったなあ
Cのポインタとかもそうだった
766:デフォルトの名無しさん
16/10/07 08:39:51.90 m+Df9peK.net
逆になんで拒否反応起こすのか理解できない
知って即座に馴染んで初めのうちは便利すぎてちょっと調子乗って使いすぎちゃいましたってなるだろう
767:デフォルトの名無しさん
16/10/07 08:49:35.73 nw13XKq1.net
同じカテゴリの処理の実装場所が散らかるからな。気持ちはわからないこともない
768:デフォルトの名無しさん
16/10/07 13:02:14.27 gy3H7/nZ.net
別人で再生して浄化した。
769:デフォルトの名無しさん
16/10/07 21:00:51.15 NycpsfVm.net
>>743
> 同じカテゴリの処理の実装場所が散らかるからな。
それは使いどころを間違えてるだけやん
770:デフォルトの名無しさん
16/10/07 21:05:49.22 1Dl+MuXR.net
道具のせいにする人ってどこにでもいるよね
771:デフォルトの名無しさん
16/10/07 21:42:30.53 rpvo0aMN.net
いるね
772:デフォルトの名無しさん
16/10/07 23:53:39.03 1f6Aa5PW.net
そういう方はコボルに移ってもコボルのせいにしない?
773:デフォルトの名無しさん
16/10/08 00:27:37.64 YZ0dkDui.net
極端な人ってどこにでもいるよね
774:デフォルトの名無しさん
16/10/08 10:59:27.20 3B0HEkdw.net
>>742
実際にコードを書かない、コードを書けない、かつ不勉強な人がコードレビューでLINQその他に対して激しい拒否反応を起こしたのは見た事ある。
もちろん、その人にコードレビュー受けた人達は大被害ww
その人は自己が見慣れないコードは全部ケチをつけるタイプなので特殊例かもしれん。
775:デフォルトの名無しさん
16/10/08 17:25:08.15 6UkbCfBv.net
そんなやつがレビューアーやってる事の方が問題なんだが
776:デフォルトの名無しさん
16/10/08 17:28:45.90 siQv9+5e.net
直属の上司とか、1年上の先輩とか
機械的に決まるパターンだと悲しみが起こりそう
777:デフォルトの名無しさん
16/10/08 18:05:11.46 160QOg/G.net
日本の文化と思って諦めるしかない
どうしても嫌なら会社はいくらでもある
778:デフォルトの名無しさん
16/10/08 20:07:07.86 6x1/odTz.net
会社はいくらでもあるが、果たして…
779:デフォルトの名無しさん
16/10/09 03:24:54.85 b4dakfPd.net
会社厨うざい
780:デフォルトの名無しさん
16/10/13 14:08:23.46 iJXxjoio.net
Visual C# には iniファイル読み書きのライブラリはないの?
781:デフォルトの名無しさん
16/10/13 14:23:00.79 x9JSnrTo.net
標準のはない
782:デフォルトの名無しさん
16/10/13 14:36:24.85 U+TNkLbY.net
今時はJSONでも使っとけ
783:デフォルトの名無しさん
16/10/13 15:12:47.08 iJXxjoio.net
>>757-758
ありがとう
なんとかする
784:デフォルトの名無しさん
16/10/13 21:52:42.89 iJXxjoio.net
Visual C# で、フォーム上の適当なところでダブルクリックすると
ロード直前に実行される関数のひな形(Form1_Load)ができるけど
この関数を削除するにはどうしたらいいの?
785:デフォルトの名無しさん
16/10/13 21:55:43.87 mO/7q7RS.net
逆に消してどうしたいの?
786:デフォルトの名無しさん
16/10/13 21:56:14.16 NpjsDOUl.net
>>760
普通にエディタ上で消せばいい。あと表示→プロパティ→イベント()からも消しとけ。
787:デフォルトの名無しさん
16/10/13 22:30:08.59 Qz0gpqw/.net
>>760
直後なら(本当は直後でなくてもだけど)ctrl-Zで消せると思う
788:デフォルトの名無しさん
16/10/14 00:12:51.87 ogHyy/3J.net
作ったままの中身空っぽならプロパティイベントから消したら同時に消えたと思う
789:デフォルトの名無しさん
16/10/14 01:38:37.30 T/Zghmcy.net
コードから消そうとすると
エラーになるんだよね
最初ほんとうにイライラしたわ
790:デフォルトの名無しさん
16/10/14 01:48:21.30 ZVLfa9Nj.net
>>765
ビルドエラーのこと?なったらなったで該当箇所教えてくれるから消せばよくね?
791:デフォルトの名無しさん
16/10/14 09:07:30.89 5Y7KbdSJ.net
>>764
中身あっても消えるよ
これほんと余計なんだよな
792:デフォルトの名無しさん
16/10/14 13:40:56.00 SyTitZMd.net
>>765
うちの姉はデザインとコードの切り替えで
CtlとAltと0押して、ShiftとF7で戻ってるぜ
793:デフォルトの名無しさん
16/10/14 16:29:58.71 4Yb8Ckim.net
>>762
ありがとう助かりました
プロパンティからも消してエラーが出なくなった
794:デフォルトの名無しさん
16/10/14 17:46:35.81 3zF/39NX.net
>>767
必要ならコメント入れておけば良いじゃん
795:デフォルトの名無しさん
16/10/14 21:38:58.11 EyG+crJd.net
>>767
コントロールのID変えたら、紐付いてるイベントまで消えたりするもんな
796:デフォルトの名無しさん
16/10/14 23:55:39.11 LsS2QSVW.net
イベントハンドラ消えて困ることってあるの?
せいぜい1~2行の移譲メソッドでしょ
797:デフォルトの名無しさん
16/10/15 00:26:35.41 k9mTyD+7.net
>>772
ha?
798:デフォルトの名無しさん
16/10/15 02:30:14.73 SiQ2B4iv.net
>>773
ん?
799:デフォルトの名無しさん
16/10/15 02:42:51.12 JTDXk7lA.net
>>774
プニュ( ´∀`)σ)Д`)
800:デフォルトの名無しさん
16/10/15 13:47:32.69 trxVi14T.net
あるフォームのボタンを押されたら、スレッドを作って
そのスレッドからフォーム内のラベルの読み書きをおこなう
というプログラムを書いているんだけど
スレッドを別クラスで書くにはどうしたらいいんでしょうか
スレッドを作るとき、そこにフォームのポインタを渡せばいい?
801:デフォルトの名無しさん
16/10/15 13:54:45.28 P+QAjsnw.net
>>776
.Start(Object)のObjectにフォームを入れる。
もちろんThreadのParameterizedThreadStartは引数にObjectが必要。
スレッド終了方法にコツがいるから注意な
802:デフォルトの名無しさん
16/10/15 13:56:21.00 P+QAjsnw.net
なお、Invokeで操作するだぞ
803:デフォルトの名無しさん
16/10/15 14:59:51.84 k370RUkX.net
今時Threadを直接使うとか時代錯誤甚だしい
続けて処理をするなら、メインスレッドからTaskを開始→メインスレッド上でawait→結果受け取ったらラベル更新→次のTaskを開始→…
って感じの流れにするのが今風
804:デフォルトの名無しさん
16/10/15 15:13:08.29 auQgHyKE.net
FW4.5以上必須だけど
805:デフォルトの名無しさん
16/10/15 15:16:20.18 trxVi14T.net
>>777
Start前に別スレッド用のクラスのメンバーに渡しました
ヘタレですみません
>>780
古い機械で動かす用なので今風にはできません
ヘタレですみません
806:デフォルトの名無しさん
16/10/15 16:47:54.95 P7MwN4Hv.net
>>779
意識高いねー
807:デフォルトの名無しさん
16/10/15 17:35:29.50 pMgLYSqA.net
最近は当たり前のことを意識高いと揶揄する若者が増えたよね
808:デフォルトの名無しさん
16/10/15 17:50:47.61 xaDriJeZ.net
ポーリングとかほぼ回しっぱなしの処理ならむしろ生スレッドでいいと思うけどね。
前も書いた気がするけど、デッドロックしやがるたちの悪い処理にも対応可能だし
809:デフォルトの名無しさん
16/10/15 18:44:32.46 uHGHKnNI.net
C#はC++よりも、
810:他人の書いたコードが分かりやすく、数年前のコードが読みやすい言語なのでしょうか?
811:デフォルトの名無しさん
16/10/15 18:47:09.72 I3OeS+b+.net
結論から言うとそんなものは書いた人によります
812:デフォルトの名無しさん
16/10/15 19:01:46.62 6v+uOgk1.net
少なくとも他人のC++の古い糞コードは読みたくない
C#は数年前でもあんま変わらんからそれほどでもない
813:デフォルトの名無しさん
16/10/15 19:41:54.19 UDl7k1b2.net
古い機械って、XPなのかなw
LINQ Task等の登場前後でC#のコードもだいぶ変わってきてきてる気がする。
C#7.0以降でも、どんどん変わって行く気配。
814:デフォルトの名無しさん
16/10/15 19:50:54.93 Gdu5DIb6.net
C#のformアプリで画面内にCADみたいな線を引っ張ったりするものって作ること可能?
815:デフォルトの名無しさん
16/10/15 20:14:30.17 lUEMvsqs.net
C#から勉強したから
C++気持ち悪くてしょうがない
本のサンプルコードに多いから
仕方なく勉強してるけど
816:デフォルトの名無しさん
16/10/15 20:28:52.91 Y5UYqbC9.net
>>789
CADみたいな、の意味がいまいちわからないが簡単な図形なら描ける
URLリンク(dobon.net)
上のページのはコードで座標を決めてしまっているが、マウスドラッグで指定した位置に描くものとかは簡単にできる
817:デフォルトの名無しさん
16/10/15 20:38:05.23 pX/A0T2U.net
>>791
サンガツ
白紙にエクセルのオートシェイプの機能とか文字を好きな位置に挿入する機能を持ったものかな
線のボタンを描画モード、文字ボタンを押せば文字モードみたいなの出来るかなーって
818:デフォルトの名無しさん
16/10/15 20:41:29.04 Y5UYqbC9.net
>>792
>線のボタンを描画モード、文字ボタンを押せば文字モードみたいなの出来るかなーって
そこまでの標準のライブラリは無いので頑張って自分で作ろうw
文字の描画もGDI+でできるからUIの実装だけだ
819:デフォルトの名無しさん
16/10/15 20:50:25.38 vyO0bokn.net
>>780
Microsoft.Bcl.Async使えば.NET Framework 4.0 でも使える
820:デフォルトの名無しさん
16/10/15 20:59:19.56 vyO0bokn.net
>>784
Task作成時にLongRunningオプション指定すれば専用スレッドが作成されるので、ずっと動き続ける処理も対応可能
外から無理やり強制終了させるのはTaskじゃ出来ないけど、それは最後の手段な気が
821:デフォルトの名無しさん
16/10/15 21:01:52.12 trxVi14T.net
ずっと裏で動いているスレッドが1つあって
そのために1つだけスレッドを作っているんだけど Threadじゃだめかな・・・
終了時、Invoke中にメイン死ぬと不正終了になるんだけど
こういうのもTaskとかだとなにもしなくても解決するのかな
822:デフォルトの名無しさん
16/10/15 21:04:09.39 pX/A0T2U.net
>>793
作成可能なのかぁ
よっしゃ頑張って調べてみる
ありがとう
823:デフォルトの名無しさん
16/10/15 23:28:16.70 f1QyDe2U.net
>>756
win32api 直たたきでやる
824:デフォルトの名無しさん
16/10/16 09:25:32.19 N3K1drKB.net
別にDeprecated表示が出るわけでもないのに
いちいち人の顔色確認しないと使えないのかよって感じ
825:デフォルトの名無しさん
16/10/16 09:47:25.93 FoYCot45.net
>>796
そもそもずっと動いてる必要があるのかっていう
スレッドが使われる大半のケースは非同期プログラミングが面倒だからで、
asyncのように継続を自然に記述できる十分優れたプログラミングモデルがあればそもそも必要ないことが多いよ
826:デフォルトの名無しさん
16/10/16 10:13:05.42 JeZKc2qD.net
結局、待ち合わせ処理を上手く書けなければ、非同期処理はドツボルだけだからな
827:デフォルトの名無しさん
16/10/16 10:17:44.05 6cPEMPfX.net
今はasync/awaitのせいでそれ意味あん?っての多いな
828:デフォルトの名無しさん
16/10/16 11:01:54.51 jn8AI4NK.net
IProgress<T>も追加されたし、Control.Invoke()とかBackgroundWorkerとか全然使わなくなったなぁ
829:デフォルトの名無しさん
16/10/16 11:26:09.74 LqkHCFhg.net
MSHTML?とかDOM?の話ってここでしても大丈夫?
id='hoge' なdivを探して、さらにその中に散らばっている class='piyo' なdivを
コレクションしたいんだけど、うまく書けない
830:デフォルトの名無しさん
16/10/16 11:27:43.38 jbRBUkYK.net
$('hoge').children('.piyo')
831:デフォルトの名無しさん
16/10/16 16:08:56.29 43exmUNo.net
MSHTMLはCOMコンポーネントスレだな
C#ではない
832:デフォルトの名無しさん
16/10/16 16:16:22.79 6cPEMPfX.net
ここよりもどこの方が答え出やすいだろってんならわかるが、C#でやりたいってんだからここでいいだろ
変なとこで聞くとC++とかjsでの例が返ってきて面倒
833:デフォルトの名無しさん
16/10/16 17:18:36.54 SvwLiUUm.net
一方このスレでは、使ってる人が居なくて回答がないってオチなんですけどね
ふふふ
834:デフォルトの名無しさん
16/10/16 17:25:57.62 FB+xb9yt.net
逆にnugetで使えるMSHTML的なライブラリを教えてあげたらどうですか
835:デフォルトの名無しさん
16/10/16 20:17:19.13 rLjB7sKS.net
>>804
上手く書けないってどういうこと?
classNameのことかもしれないなと思ったけど違うかな?
普通にdiv取ってクラス名をアトリビュート指定するとき'class'じゃダメ
'className'じゃないといけない
836:デフォルトの名無しさん
16/10/16 20:43:38.34 bkFW5Wdb.net
俺もさっき?ってなった
837:デフォルトの名無しさん
16/10/16 20:44:43.60 HptTw0AS.net
便利な定番ライブラリー教えてください
838:デフォルトの名無しさん
16/10/16 22:10:05.08 rLjB7sKS.net
nugetにも野良にもHTMLライブラリはあまりいいものがない
XPath指定しないといけなかったり単純じゃない
839:デフォルトの名無しさん
16/10/16 22:13:37.85 rLjB7sKS.net
jqueryみたいな使い勝手のものがいいのに全然そういうのは見当たらない
840:デフォルトの名無しさん
16/10/16 22:32:11.51 dK/+e+o+.net
か余計なことせずそのまま実績のあるjquery使えばいいのでは
841:デフォルトの名無しさん
16/10/16 22:55:35.24 Bi9cJ88q.net
>>812
定番かどうかは分からないけどHtmlAgilityPackはどう?
まぁ813が言っているようにXPath使わにゃならんから面倒だけど
842:デフォルトの名無しさん
16/10/17 00:41:57.54 gL0kaGzi.net
mshtmlつかうなら
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
queryselectorが使える
843:デフォルトの名無しさん
16/10/17 21:53:10.29 vjQZXreA.net
HtmlAgilityPackかSGMLReaderあたりかなあ
844:デフォルトの名無しさん
16/10/18 16:42:09.62 7mpjJA7j.net
今動作してるIEの一覧を取得するのにSHDocVw.ShellWindows()を使うけど
IEかただのエクスプローラかそれとも何かのコンポーネントかを判別するのって
どうしたらいいの?
845:デフォルトの名無しさん
16/10/18 18:13:12.16 ewOaGiwG.net
そんなもの使うなとしか言えない
846:デフォルトの名無しさん
16/10/18 18:29:09.57 mq8BnqKZ.net
IE6のときならenumwindowで判断して、hwndからihtmldocumentに変換してたな
847:デフォルトの名無しさん
16/10/18 19:15:18.50 FlxOlnSe.net
>>820
無能だなー
848:デフォルトの名無しさん
16/10/18 20:46:41.52 ewOaGiwG.net
>今動作してるIEの一覧を取得するのにSHDocVw.ShellWindows()を使う
なぜこんなものを使う?
849:デフォルトの名無しさん
16/10/18 20:52:19.50 Gt7CC2vm.net
背後になんか面倒くさい理由を隠してるとしか思えんよな
850:デフォルトの名無しさん
16/10/19 12:11:35.27 LBA1+3Md.net
>>823
こんなもの以外の方法があるならおしえて
ほかの楽な方法があるなら知りたいわ
851:デフォルトの名無しさん
16/10/19 17:19:08.15 arYWyhLn.net
IEオートメーションじゃ実現できないのかな?
852:デフォルトの名無しさん
16/10/19 23:13:27.42 LBA1+3Md.net
MSHTML.IHTMLElement を MSHTML.IHTMLDocument3 にキャストできるの?
853:デフォルトの名無しさん
16/10/19 23:33:28.27 O7AcwVjM.net
documentプロパティから取れるんじゃないか?すくなくともihtmldocument2は取れる3は使ったことないから知らね
854:デフォルトの名無しさん
16/10/20 11:00:38.44 m/6IB2Ib.net
ベクトル使いたいからWPFのチュートリアルみてるけど
もう自分で実装してForm使った方が早い気がした
855:デフォルトの名無しさん
16/10/20 11:21:11.77 h44EP0Eo.net
標準のメッセージダイアログを継承して
おっきいダイアログ出せるようにできる?
856:デフォルトの名無しさん
16/10/20 11:52:28.07 h1aMlyOK.net
>>830
継承してもstaticメソッドの実装はオーバーライドできないよね。
ゼロベースで作っても大した手間でもないよ。
俺はモーダレスかつタイマーで自動で消えるメッセージボックスを自作して使ってる
857:デフォルトの名無しさん
16/10/20 12:16:12.40 h44EP0Eo.net
>>831
ありがとう。 自分で作った。
858:デフォルトの名無しさん
16/10/20 12:33:25.92 hy7ZxWJM.net
なんでたまに継承できないクラスあるのかな?
859:デフォルトの名無しさん
16/10/20 12:33:46.23 hy7ZxWJM.net
オーバーライドだった
860:デフォルトの名無しさん
16/10/21 22:58:40.56 qlDwM755.net
gcnewってなに? 今でも使っているの?
861:デフォルトの名無しさん
16/10/21 23:06:00.00 myg7EJ7B.net
>>835
c#にgcnewは無いよ。
C++/CLIでc#のnewに相当するのがgcnew。
マネージオブジェクトを割り当てるのに使う。
862:デフォルトの名無しさん
16/10/22 11:50:35.71 uYEAFNJ9.net
>>836
ありがとう
何かの記事でごっちゃに見たみたいだな
863:デフォルトの名無しさん
16/10/22 15:25:07.68 nST3ahFj.net
質問
LINQのクエリ/メソッド式って、どう使い分けるもんなん?
「こういう人はこう」でも「こういう状況ではこう」でもいい。
864:デフォルトの名無しさん
16/10/22 16:27:57.03 Hz0V4lr8.net
とりあえずLINQ to Objectsの場合
基本的にクエリ式は忘れていいと思うよ
SelectManyが出てくるときだけ思い出すことはある
865:デフォルトの名無しさん
16/10/22 16:39:49.89 nST3ahFj.net
ありがとう、あんまり気にしないことにする
866:デフォルトの名無しさん
16/10/22 17:43:18.97 29Li8We/.net
>>829
君の言うベクトルって何?
画像系の話?
867:デフォルトの名無しさん
16/10/22 18:08:09.54 O/1X83Cc.net
>>838
単純なクエリはメソッドの方が簡潔に書けるけど、複雑になると解読不能になるからクエリ式を使う
具体的にはネスト(SelectMany)やjoinやgroupbyを使う場合だな
クエリ式だとletでエイリアス作れるし
868:デフォルトの名無しさん
16/10/22 19:37:45.10 jUJZAwsX.net
管理者権限が必要な処理の書き方とか全然知識
869:がないんだけど、そういうの詳しく書いてある本ってあります?
870:デフォルトの名無しさん
16/10/22 23:36:47.33 AdTl/Wc+.net
class 社員 { public string 名前; }
class 部署 { public List<社員> 社員リスト; }
class 会社 { public List<部署> 部署リスト; }
static void Main()
{
var data = new List<string[]> {
new string[]{ "会社A", "営業部", "社員1"},
new string[]{ "会社A", "営業部", "社員2"},
new string[]{ "会社A", "営業部", "社員3"},
new string[]{ "会社A", "技術部", "社員4"},
new string[]{ "会社A", "技術部", "社員5"},
new string[]{ "会社A", "経理部", "社員6"},
};
var 会社A = new 会社();
// ここで date を 会社A の中に代入したい
}
こういう単純なクラスとデータがある場合に、dataを会社Aに代入したいのですが、forループでやろうとすると例えば営業部の部署名が複数回出てくるので
上手く出来ませんでした。上級者の人のテクニックを教えて下さい。
本当は会社B、会社CもあるdataをList<会社>に入れたいのですが、まずは会社Aのみで。
あるいは、より良いクラス定義のしかたやデータの持ち方などありましたら教えてください。
871:デフォルトの名無しさん
16/10/23 00:22:31.27 B5STCa/c.net
>>844
何がしたいのかよくわからんけど、そのコードだと
会社は会社名のプロパティを持ってないし部署も部署名のプロパティを持ってないから
"会社A"とか"営業部"とかいうデータは使われず捨てられちゃうと思うんだけど、そこはいいのかな?w
872:デフォルトの名無しさん
16/10/23 07:53:45.11 OxwAMa74.net
>>844
Listの操作でいけるだろ
コンストラクターの引数で
873:デフォルトの名無しさん
16/10/23 09:52:13.25 1pxdLQGB.net
部署クラスが部署名を持ってないってことは、その部署クラス(のインスタンス)をみても
どの部署かわからんってことだぞ
つまり、社員の部署が分かったとしても、その社員を
List中のどの部署インスタンスに設定してよいかわからんってことだ
874:デフォルトの名無しさん
16/10/23 10:49:08.80 sEyHovA2.net
class 会社{会社CD 会社名}
class 部署{会社CD 部署CD 部署名}
class 社員{社員CD 会社CD 部署CD 社員名}
個人的にはこんなイメージ
875:デフォルトの名無しさん
16/10/23 10:57:06.97 ZJ79iXt0.net
なんだそのCDって。
876:デフォルトの名無しさん
16/10/23 11:09:20.84 +n3OHrjP.net
「コード」の略として使われてるのを、帳簿やら流通やら管理やらで結構広く使われてるけど
プログラミング界隈に絞ると余り見ない気がする
877:デフォルトの名無しさん
16/10/23 11:14:50.63 hWrb1W5d.net
flagをflgにして1バイト削減するのとどちらがいい
878:デフォルトの名無しさん
16/10/23 11:18:19.73 KJ+MRgkM.net
省略がどうしても必要にならない限り
無意味な省略はしない
879:デフォルトの名無しさん
16/10/23 11:29:06.27 04VfEeFu.net
>>844
>営業部の部署名が複数回出てくるので
>上手く出来ませんでした
この部分の意味というかどうしたいかがわからん。"会社A"の要素の振り分けならContainsで確認するだけだが
880:デフォルトの名無しさん
16/10/23 11:39:54.27 hJuf8zeH.net
データ突っ込んでDBみたいに扱いたいならDataSetでも良いんじゃないの
速度求めるならオススメできんけどさ
881:デフォルトの名無しさん
16/10/23 12:00:39.55 0D6CiVY3.net
>>851
menuをmnu、userをusr、topをtpとか
何かの制御ボードのサンプルコードで見たけど
1バイト削ることに何の意味があるのか分からん
882:デフォルトの名無しさん
16/10/23 12:14:59.88 631/ZmCa.net
バーコードの最後の数字がC/Dって呼ばれてたな確か
check digitだったと思うけど
883:デフォルトの名無しさん
16/10/23 12:15:35.19 +n3OHrjP.net
大昔には削るメリットは結構あったらしい
変数名の長さに制限があるとか、エディタで扱いやすい長さだとか、そういうの。
884:デフォルトの名無しさん
16/10/23 12:18:54.25 XCFJNrSh.net
>>844
Dictionaryを使えばいいよ
class 社員 { public string 名前 {get;set; }
class 部署 { public Dictionary<string,社員> 所属社員 {get;} = new Dictionary<string,社員>(); }
class 会社 { public Dictionary<string,部署> 所属部署{ get;} =new Dictionary<string,部署>(); }
var 会社情報 = Dictionary<string,会社>();
foreach(var d in data) {
if(!会社情報.ContaintsKey(d[0])) 会社情報[d[0]] = new 会社();
if(!会社情報[d[0]].所属部署ContaintsKey(d[1])) 会社情報[d[0]].所属部署[d[1]] = new 部署();
会社情報[d[0]].所属部署[d[1]].所属社員[d[2]] = new 社員() { 名前 = d[2] }
}
885:デフォルトの名無しさん
16/10/23 12:19:09.90 sEyHovA2.net
未だに列名6バイトなクソDB使ってて
癖ついちゃってるんだすまない
886:デフォルトの名無しさん
16/10/23 12:24:08.02 LLV8Wwru.net
ジャップランドでは今なお80文字x24行の端末で開発もオペレーションもするマシンがバリバリ現役で山ほど稼働しており、
PGという名のライン工により日夜大量の糞コードが生産され続けているのです
887:デフォルトの名無しさん
16/10/23 12:25:50.86 XCFJNrSh.net
テーブル定義からDTO自動生成したら30文字以下の略式名称が沢山出てきてイラついた事ならよくある
どこの製品とは言わんが
888:デフォルトの名無しさん
16/10/23 12:29:06.93 8nXGysoS.net
>>858
分かりずらすぎ
889:デフォルトの名無しさん
16/10/23 12:51:39.85 XCFJNrSh.net
>>862
転職をお勧めするよ
890:デフォルトの名無しさん
16/10/23 13:03:17.86 8nXGysoS.net
Dictionaryなんて使わない。
891:デフォルトの名無しさん
16/10/23 13:10:06.70 Qt7KzQsX.net
今時はクラス名や変数名とかに日本語が使えるから分かりやすくていいよね
892:デフォルトの名無しさん
16/10/23 13:15:27.54 PYj3VGyg.net
>>864
自分の使わないものを「わかりづらい」って批判するのはただの思考停止だな
893:デフォルトの名無しさん
16/10/23 13:16:08.35 +n3OHrjP.net
>>865
あとはインテリセンスちゃんに頑張ってもらうだけ!
894:デフォルトの名無しさん
16/10/23 13:16:17.05 qVlUr/o9.net
フォームのボタンとかラベルの名前の付け方
何か命名規則やコーディング規約とかある?
labelHogeとかlbl_hogeとかルールあるの?
895:デフォルトの名無しさん
16/10/23 13:17:43.18 PYj3VGyg.net
>>868
そんなもの決まってないから
クラス名・変数名に迷ったら書き込むスレ。Part27
スレリンク(tech板)
気になるのなら上のスレに行け
896:デフォルトの名無しさん
16/10/23 13:18:39.73 YUghrMnK.net
会社の複数形…
会社達["会社A"].,["営業部"].["社員1"];
会社達.Select社員("会社A", "営業部", "社員1");
897:デフォルトの名無しさん
16/10/23 13:19:22.06 YUghrMnK.net
間違って . いれっぱだった
898:デフォルトの名無しさん
16/10/23 13:24:40.71 631/ZmCa.net
>>868
コントロール専用のルールはないけど、VB6みたいなハンガリアンはやめろってことにはなってたはず。
ただ実際はコントロールに限ってはハンガリアン使ってる人が多いと思う
899:デフォルトの名無しさん
16/10/23 13:43:56.51 7RJgAwd4.net
アプリケーションハンガリアンは普通に使う
インテリセンスがグループ化してくれて便利やろ
900:デフォルトの名無しさん
16/10/23 13:48:58.15 qVlUr/o9.net
>>869-873
ありがとう
とりあえずマイクロソフト推奨のルールは
ないってことやね
901:デフォルトの名無しさん
16/10/23 14:47:40.36 KJ+MRgkM.net
.NET Frameworkの記法に合わせる事にしてる
URLリンク(msdn.microsoft.com)(v=vs.100).aspx
902:デフォルトの名無しさん
16/10/23 14:52:56.32 Qt7KzQsX.net
分かりやすい日本語にしてる
903:デフォルトの名無しさん
16/10/23 15:22:39.08 LLV8Wwru.net
>>873
人それぞれだけど、俺は全てのラベルをラベルとしてグループ化するより
例えば会社名のフィールドならラベルとテキストボックスをまとめて会社名としてグループ化したい派
コントロールの種類でグループ化することにあまりメリットを感じない
904:デフォルトの名無しさん
16/10/24 11:24:49.66 l6YOm+ny.net
>>874
.NET前:MS「ハンガリアンを使え」
.NET後:MS「ハンガリアンを使うな」
URLリンク(msdn.microsoft.com)
905:デフォルトの名無しさん
16/10/24 11:33:54.68 ex01Zy3v.net
>>878
それ翻訳がおかしいだけでしょ
ちゃんと翻訳されてる方を見ろよ
URLリンク(msdn.microsoft.com)(v=vs.100).aspx
906:デフォルトの名無しさん
16/10/24 11:56:19.29 fiWgzVNs.net
規約と推奨をちゃんと切り分けて話してくれよ
質問者は最初に「規約」を聞いてきてその後に「MSの推奨」になっているけど話が全然別の物になるから
907:デフォルトの名無しさん
16/10/24 12:07:19.75 A1JDcDJD.net
>>880
規約があれば規約を教えてほしい。
規約はないが推奨はある というなら推奨でもいい。
推奨もないなら 「俺はこうしてる」 でもいい。
908:デフォルトの名無しさん
16/10/24 12:16:05.65 fiWgzVNs.net
>>881
推奨は>>878>>879でリンク貼ってもらっているだろ
そういったこと気にするのなら2chで聞くよりも適当に本何冊か買って書いてあるとおりにでもやればいい
職場なら職場のルールがあるし、趣味でやっているのならどうするかは個人の勝手なんだから
909:デフォルトの名無しさん
16/10/24 12:23:17.96 csInVVUs.net
どうでもいいことで妙な絡み方する奴だねw
910:デフォルトの名無しさん
16/10/24 12:25:46.22 TdMIMrel.net
あとMSの提示してる規則はあくまで不特定多数にAPIが参照される前提の「ライブラリ」に対してのみの提案
だから文中にもpublic/protectedに対するものしか出てこない
アプリ内の記述とか、ライブラリでもinternalやprivateなものは完全ノータッチ
911:デフォルトの名無しさん
16/10/24 16:07:18.44 SvgB/4J1.net
>>878
これは見事な糞機械翻訳だな
原文: [X DO NOT] use Hungarian notation.
機械: [X のしないで] ハンガリアン記法を使用します。
直訳: [×するな] ハンガリアン記法の使用。
意訳: ハンガリアン記法を使用するな。
912:デフォルトの名無しさん
16/10/24 16:40:04.52 qDj+nyPk.net
URLリンク(www.atmarkit.co.jp)
ここを参考に、オプションを指定して2個めを起動すると、起動中のアプリに独自メッセージを投げるようにしてみた。
ただ、アプリは複数のウィンドウを開いていて、探した Process オブジェクトの MainWindowHandle には
フォーカスがある (あった?) ウィンドウのハンドルが入ってるみたいで、目的のウィンドウじゃない場合がある。
全部のフォームの WndProc をオーバーライドするのも保守性がよくないし、どうしたらいいんでしょうか。
913:デフォルトの名無しさん
16/10/24 17:05:46.02 f1Oob2xq.net
>>886
FindWindow使うんじゃあかんの?
914:デフォルトの名無しさん
16/10/24 17:10:36.84 e0+jKQlJ.net
そのウィンドウの作りによるけど、親子関係を維持してるなら親をたどるとか
モードレスの場合は、、、どれがメインなのかを知る手段をお互いの約束事でみつける、かなあ
915:デフォルトの名無しさん
16/10/24 17:40:28.81 TdMIMrel.net
PostMessageでいいならIMessageFilter実装してApplication.AddFilterすれば
ちょっと構造的にやるならHWND_BROADCASTで問い合わせてみるとか
916:デフォルトの名無しさん
16/10/24 17:41:57.18 TdMIMrel.net
っていうかそんなんやるんだったらもうIPCチャネル使ったWCFでいいか…
917:デフォルトの名無しさん
16/10/24 20:50:12.21 qDj+nyPk.net
ご意見ありがとうございます。
タスクバーから表示を消している場合は API を使って探すしかないようなんで、それを参考にしようとしたけど、
できれば極力 API を使わない方法がないかなーと思いまして。
IPC も検討したけど、WndProc をオーバーライドした抽象クラスを作って、そこから派生させるようにしました。
まあでも IPC 使ったほうがスマートでしょうね。
918:デフォルトの名無しさん
16/10/27 16:31:51.10 NElj0+xs.net
整数型間のキャストについてちょっと質問
■ ビット幅大→ビット幅小
上位ビットの切り捨て
■ ビット幅小→ビット幅大
符号拡張後のビットイメージのコピー
■ 同じビット幅で符号の有無が違う型の間のキャスト
ビットイメージのコピー
こういう理解で合ってる?
919:デフォルトの名無しさん
16/10/27 17:49:24.66 K4rqOI65.net
整数間って、符号有から符号有への変換しか考慮しないのか?
920:デフォルトの名無しさん
16/10/27 19:04:56.45 Z8lrimsb.net
>>892
全然違う
はみ出るなら普通に例外飛んでくる
921:デフォルトの名無しさん
16/10/27 20:36:31.88 rC8yedLe.net
>>894
C#はアンチェックキャストも使える
>>892で合ってる
922:デフォルトの名無しさん
16/10/27 20:41:37.27 T6ck7IU9.net
質問書き込む間に試せば済むのにって思ったのは俺だけかな
923:デフォルトの名無しさん
16/10/27 20:59:04.81 u3THH1jN.net
あまりにも自分に自信が持てないと、自分で試したことすら信用できなくなる
そうすると、百聞は一見に勝ってしまう
924:デフォルトの名無しさん
16/10/27 21:23:24.66 5bnizB9y.net
uncheckedが前提ならそうかくだろ
キャストと言えば普通のキャストだろが
925:デフォルトの名無しさん
16/10/27 21:35:03.00 PfRUD0fJ.net
>>895
ありがとう
926:デフォルトの名無しさん
16/10/27 22:05:16.44 ILgHPkDG.net
>>898
カッカすんなよ
何が普通かは人によって違うんだよ
927:デフォルトの名無しさん
16/10/27 22:22:58.40 pbaR/VeE.net
>>898
変数だとuncheckedがデフォルト設定だから、省略されてもおかしくない。
928:デフォルトの名無しさん
16/10/28 08:40:14.47 AW+qEc2o.net
>>896
お前だけだよ。
929:デフォルトの名無しさん
16/10/29 19:08:46.81 dXKRRVDP.net
C#erはサードパーティ製のORMやEntity Frameworkを禁止された時は何を使うんですか?
今いる現場では代わりにADO.NET & 型指定DataSet(デザイナーで作るアレです)を使っていますが生産性がいまいちなので他の方法を探しています
この方法の全てが気に入らない訳ではなくプロパティが全てパブリックになってしまう、DBNullとnullの変換が面倒、Nullable使用不可、邪魔なパブリックメソッドが沢山あるといったポイントが不評です
特にパブリックプロパティの問題はオブジェクトに集中するべき振る舞いがシステム全体に分散してしまうので深刻です
930:デフォルトの名無しさん
16/10/29 19:29:57.79 ddj4bzvw.net
DAO手書きでいいよ
931:デフォルトの名無しさん
16/10/29 19:46:29.75 wsj9Hrl0.net
>>903
禁止する理由?
932:デフォルトの名無しさん
16/10/29 19:46:57.95 wsj9Hrl0.net
…は何
って打とうとした
933:デフォルトの名無しさん
16/10/29 20:03:24.68 3O/hAOpu.net
DataSetって産廃を未だに使っているところあるんだな
934:デフォルトの名無しさん
16/10/29 20:57:46.79 9ElojHns.net
EFを禁止する理由って一般的には何?
935:デフォルトの名無しさん
16/10/29 21:02:47.76 ZloojbFD.net
>>906
会社の決まりとかだろ
936:デフォルトの名無しさん
16/10/29 21:11:45.43 wsj9Hrl0.net
>>909
その理由を聞いてるんだろ
937:デフォルトの名無しさん
16/10/29 21:12:05.69 nUOhPXQV.net
もし、速度の問題ならDapper使うべきだろうがね
938:デフォルトの名無しさん
16/10/29 21:21:04.07 Xtl4N18Y.net
理由がなければ禁止されないと思ってるのが可愛い
939:デフォルトの名無しさん
16/10/29 21:31:13.29 ZloojbFD.net
>>910
そんなもん聞いてどうなるもんでもないし
940:デフォルトの名無しさん
16/10/29 22:29:40.91 3zUqMDSq.net
理解できずにトラブルが起きたときに思考停止する低能があまりに多いから
知らないところでメタ情報取得のためのSQL文を実行してるので
RDBMSのユーザーに本来不要な権限が必要になる場合があるから
941:デフォルトの名無しさん
16/10/29 22:50:05.69 dNFy3BfA.net
>>913
思考停止おつ
942:デフォルトの名無しさん
16/10/29 23:40:38.36 O0e58OxR.net
安い人足を使ってるのでついて来れない
943:デフォルトの名無しさん
16/10/30 03:55:02.62 POLtarGN.net
>>916 これ
944:デフォルトの名無しさん
16/10/30 08:47:00.01 2kQlDpFE.net
>>915
会社によって理由なんて様々だし
たいてい議論しても解決策なんて出ないし
そもそもここで議論すべき内容じゃないし
945:デフォルトの名無しさん
16/10/30 08:49:23.96 m4OftK0R.net
理論武装すれば会社がライブラリの使用を認めてくれるかって言ったら、そんな事ねーしなあ
946:デフォルトの名無しさん
16/10/30 08:55:44.96 qBBSmv5i.net
そらそうだ
変えられないことをあーだこーだ言っても時間の無駄
947:デフォルトの名無しさん
16/10/30 09:05:18.12 bey9pkjT.net
小さい会社だと文句言うと変更するか検討始めるからな。基地外が一人いるだけで開発がすげー滞るww
948:デフォルトの名無しさん
16/10/30 09:18:38.59 2kQlDpFE.net
>>919
会社の人が納得してくれても親会社からの通達でダメとかもあるし...
949:デフォルトの名無しさん
16/10/30 12:38:48.05 vWAd+Msy.net
そんな会社やめちまえよお前ら
950:デフォルトの名無しさん
16/10/30 12:41:42.06 CC/Nb3c5.net
スレ違いどころか板違い。マ板でやれ
951:デフォルトの名無しさん
16/10/30 22:32:58.24 YeZOi3cQ.net
結局のところORMを自作するほかないということでしょうか
952:デフォルトの名無しさん
16/10/30 23:25:09.40 asmRMmwq.net
君の質問に対しては、現場で許可されてる方法を使え、としか答えようがない
953:デフォルトの名無しさん
16/10/31 09:23:24.34 lW2bcIPg.net
[GeneratedCodeAttribute( "Gardens Point Parser Generator", "1.5.2")]
この[]で宣言されるのは何を意味するのだろう。
自分で書くことはないが生成されたコードではよく見かける。いままでコメント
くらいの意識で眺めていたが、気になる。
954:デフォルトの名無しさん
16/10/31 09:36:11.24 OqD2s4Cc.net
属性っていうメタデータ
シリアライズ用のデータとかネイティブAPI呼び出すとかDIとか
そういうのを書くときには使うことも出てくると思うぞ
955:デフォルトの名無しさん
16/10/31 09:40:21.62 iFh8Iutn.net
C#で便利になったもんのひとつが属性だな。Cでも同じように使えたらよかったのに
956:デフォルトの名無しさん
16/10/31 10:34:23.11 lW2bcIPg.net
そういう便利な機能があったとは。ありがとう
自分には無関係と思っていたが、例をみると
#ifの代わりに使えるね。
/// SHOW_INTERMEDIATE というシンボルが定義されているときのみ
/// 配列の内容をコンソールに表示する。
[Conditional("SHOW_INTERMEDIATE")]
static void IntermediateOutput(double[] array)
{
Output(array);
}
957:デフォルトの名無しさん
16/10/31 10:51:33.29 lW2bcIPg.net
>929
しかし普通にはあまり使うケースはないんではない?
どう便利なのかいまいちよくわからない。 Cで使えると何が便利になる?
#ifの代わりくらいになるのはわかるが、、
958:デフォルトの名無しさん
16/10/31 10:57:51.43 7o6spjkC.net
バージョンで処理を分けておいて
過去のバージョンの処理に戻したい場合は属性を変える
オープンソースだと後方互換性維持のためにそんな風にしてるね
959:デフォルトの名無しさん
16/10/31 11:01:23.63 P3Gvvomo.net
プロパティシートで使うやつ?
960:デフォルトの名無しさん
16/10/31 20:59:34.23 03zQ5mOK.net
属性はゴミ
そう思っていた時期が僕にもありました
961:デフォルトの名無しさん
16/10/31 22:23:39.25 iWkg1iMh.net
属性をうまく使いこなせればプログラムがかなりスッキリ書けるんだけど
なかなかうまく型にはまらなくて何度も作り直してるわ
962:デフォルトの名無しさん
16/10/31 22:33:33.79 PR8uOfdS.net
ちょっと凝ったことしようとしたら、DllImportAttributeとFlagsAttribute位は使うだろう。
963:デフォルトの名無しさん
16/10/31 22:52:52.13 T+jfS1R6.net
あとはUnityとかもバンバン使うイメージ
964:デフォルトの名無しさん
16/10/31 23:16:26.73 pApy3Eby.net
属性はSTAThreadとDllImportしか使った事ない
965:デフォルトの名無しさん
16/10/31 23:24:32.92 utslClq8.net
DataAnotationは良いぞ
まあガチ業務だとちょっと物足りなくて結局は自作する羽目になるんだけど
966:デフォルトの名無しさん
16/11/01 08:32:19.42 hFVadVBb.net
>>936
キャッ、それおまじないと思ってた。W
コピペしたコードの中にはよく混じってた。
967:デフォルトの名無しさん
16/11/01 08:42:26.93 iAfLjhk9.net
JSONにバインドするクラスに属性使いまくりだね
968:デフォルトの名無しさん
16/11/01 09:27:22.11 hFVadVBb.net
Unityってスクリプト言語みたいだね。これって属性なの? 面白そうだけど
どんな時に使う?
969:デフォルトの名無しさん
16/11/01 09:31:35.84 D+IVr+nD.net
ちょっと意味わからない
970:デフォルトの名無しさん
16/11/01 11:54:25.84 hFVadVBb.net
あっ、意味わかった。ごめん勘違いしていた。C#でUnity使うときの属性のことだね。
971:デフォルトの名無しさん
16/11/01 11:56:12.97 hFVadVBb.net
>JSONにバインドするクラスに属性使いまくりだね
なんで使うの? そういう必要を感じたことないんだけど。どういう場面でつかうの?
972:デフォルトの名無しさん
16/11/01 12:18:29.71 KGKMFPtk.net
>>945
天気予報データとかWeb Apiで返すデータにjson配信多いよね
973:デフォルトの名無しさん
16/11/01 13:51:57.28 bjN+4M8I.net
そういう意味じゃないと思うが
シリアライズ/デシリアライズ対象外のフィールドを指定したり
JSONとC#のクラスフィールドで名前が一致しない場合にそれらをマッピングしたりする
974:デフォルトの名無しさん
16/11/04 15:22:24.22 PH2+pS4C.net
VisualStudio2015起動中に出したらUnity生活終わるナリ・・・
あああ^~ああああああぁ^~~~!!!!起動遅せええええ!
ブリュブリュブリュブリュブリュゥゥゥウ!!!!ブッチッチブブッチブッチチ!!!
975:デフォルトの名無しさん
16/11/04 15:53:31.89 kQ8VEtHk.net
怪文書過ぎる
976:デフォルトの名無しさん
16/11/04 16:26:14.38 T8/2G1/9.net
>>946
天気予報に限らずapiが返すのはxmlかjsonだろ
977:デフォルトの名無しさん
16/11/04 16:54:25.27 22qUZxEG.net
>>950
「とか」
978:デフォルトの名無しさん
16/11/04 16:58:09.06 FRTndHrZ.net
天気はxmlの方が多いイメージだな
979:デフォルトの名無しさん
16/11/04 17:11:19.05 fW1GVoX0.net
じぃさんとかばぁさんはとしくってるいめーじ
980:デフォルトの名無しさん
16/11/04 17:17:22.17 pA+obtrY.net
そういうデータをcsvに変換するフィルタが大活躍します
981:デフォルトの名無しさん
16/11/04 17:54:23.34 V0keAHui.net
気象庁配信のデータはXMLとFORTRAN時代さながらの固定テキストだった
982:デフォルトの名無しさん
16/11/04 17:59:21.35 uJM5jI72.net
内部にコレクション持ってるなら固定テキストは向いてない
983:デフォルトの名無しさん
16/11/04 18:59:09.41 yE+rsN5M.net
>>948
これはいけない
984:デフォルトの名無しさん
16/11/04 21:48:57.57 eWOxJ5YA.net
コボルと非正規化データベースにどっぷり浸かって抜け出せないオジさんはCSVを愛している傾向が強い
985:デフォルトの名無しさん
16/11/04 21:52:44.37 EoXigf7J.net
あるある
まあ環境だから仕方ない
986:デフォルトの名無しさん
16/11/04 23:50:28.01 V0keAHui.net
職人としてCOBOL時代の技術に拘るなら潔く固定長レコードを使ってほしい
あれはあれで美しい一つの完成系だと思う
CSVは中途半端でオジさんの誇りが全く感じられない
987:デフォルトの名無しさん
16/11/05 00:02:53.11 DUzD1Vkt.net
固定長は正義
40年近くプログラミングやってるが固定長にまさるものはない
988:デフォルトの名無しさん
16/11/05 01:05:40.91 p62EnB4H.net
なーんでタブ区切りはやんないんだろーなー
トラブル減るのにいまいち認知度がない
989:デフォルトの名無しさん
16/11/05 01:49:06.12 /yzRKBKB.net
CSVと違ってエクセルが直接はサポートしてないからじゃないの?
っていうかCSV使う動機ってエクセルへのエクスポートぐらいしかないと思うけど
990:デフォルトの名無しさん
16/11/05 04:44:51.30 Mhx54Slb.net
科学技術系のソフトは割とCSV吐いたり要求したりが多い気がする
991:デフォルトの名無しさん
16/11/05 06:14:56.68 9ROCL4OX.net
>>963
直接サポートが何を指しているのか分からないが
タブ区切りインポートは「テキストファイルのインポート」機能
エクスポートは「テキストファイル(タブ区切り)」で保存
両方とも標準でサポートされている
992:デフォルトの名無しさん
16/11/05 06:15:16.00 Bnw8PuKo.net
Open XML SDK使ってXLSX直接読み書きすると捗るわ
993:デフォルトの名無しさん
16/11/05 06:50:20.50 HDT4XNAt.net
>>965
恐らく「タブは印刷すると見えない」が問題なんだろうが
それこそこっち側からは理解不能だ
994:デフォルトの名無しさん
16/11/05 07:01:16.64 Q0fi8pIF.net
Excel開いた状態からD&DでコピペするとTSVだよな確か
995:デフォルトの名無しさん
16/11/05 07:32:01.87 6wNzhQFs.net
>>966
知らない間にオープンソースになってたんだな
ちょっと使ってみるかな
996:デフォルトの名無しさん
16/11/05 11:00:50.75 p62EnB4H.net
生はつらくない?
ClosedXMLおすすめ
NPOIはバグ多い
997:デフォルトの名無しさん
16/11/05 11:01:17.28 oE61kQsA.net
namespace Calculator
{
public abstract class ScanBase : AbstractScanner<ValueType,LexLocation> {
}
public class Parser: ShiftReduceParser<ValueType, LexLocation>
{
static Parser() {
}
protected override void Initialize() {
}
省略
protected override string TerminalToString(int terminal)
{
}
Parser() : base(null) { }
public static void Calculate(string input)
{
Parser parser = new Parser();
Scanner scanner = new Scanner();
scanner.SetSource(input, 0);
parser.Scanner = scanner;
parser.Parse();
}
}
}
Parser() : base(null) { }
これは何をしてるのですか?
998:デフォルトの名無しさん
16/11/05 11:05:51.24 vG38OUAL.net
>>971
うんこ食べてる
999:デフォルトの名無しさん
16/11/05 11:17:20.70 N0pRKuvW.net
>>966
あれMSDNやそこらのサイトの例を鵜呑みにすると、複数フォント使っているセルは最初の単語しか取得出来ないんだよな
まあきっちり読めばいいだけなんだが
1000:デフォルトの名無しさん
16/11/05 11:17:22.49 93kgJ5Ii.net
>>965
分かれよw
それはTSVそサポートしてるんじゃないでしょ。
っていうか「テキストファイルのインポート」だって自分で書いてるじゃんw
>>969
プレーンテキストのデータはそうなってるだけでしょ。
そういやその逆の操作も可能だから、TSVでクリップボードにコピーして
スプレッドシートに貼り付け出来るようにしたソフトを昔作ったことがあったな
1001:デフォルトの名無しさん
16/11/05 11:18:47.90 u9ZZUUBm.net
>>971
そういうのは再帰下降パーサを手書きしてみればなんとなく分かるようになる
前知識なしでShift-Reduceは無謀
1002:デフォルトの名無しさん
16/11/05 11:22:21.39 oE61kQsA.net
ShiftReduceParserではなくて
Parser() : base(null) { } ここね。
1003:デフォルトの名無しさん
16/11/05 11:33:26.54 6wNzhQFs.net
>>974
> それはTSVそサポートしてるんじゃないでしょ。
> っていうか「テキストファイルのインポート」だって自分で書いてるじゃんw
正直何を言ってるのかわけわからん w
まあその前にアンカーぐらいまともにつけられるようになれよ
って話だな
1004:デフォルトの名無しさん
16/11/05 11:47:50.74 0A6bFhuE.net
>>966
何が捗るのさ?
1005:デフォルトの名無しさん
16/11/05 11:50:31.98 93kgJ5Ii.net
>>977
1006:arget="_blank">>>962 その答えが恐らく>>963だろうと。 そういう話
1007:デフォルトの名無しさん
16/11/05 11:51:10.92 Bnw8PuKo.net
>>969
設定ファイルをExcelで書きたいからCSVでって言ってくる客は多いから、XLSXで提案すると喜ばれるよね
1008:デフォルトの名無しさん
16/11/05 11:53:37.33 2n9hgzl5.net
CSVと違ってTSVは標準の拡張子がないだけだろ
それを「エクセルはTSVサポートしてない」って・・・www
1009:デフォルトの名無しさん
16/11/05 11:56:50.35 Bnw8PuKo.net
>>973
まあ動きがおかしいと思ったらXLSXの生データを確認するのが手っ取り早いね
1010:デフォルトの名無しさん
16/11/05 11:57:26.23 PXYcOtjJ.net
Open XML SDKってどの程度のことが出来るの?
数式セル、条件付き書式、マクロ、暗号化、PDF変換、画像挿入は対応してる?
1011:デフォルトの名無しさん
16/11/05 12:13:05.59 Qh4Pk2xF.net
いまだに「CSV?カンマで区切りゃいいんだろ?」的な認識の奴が多くて辟易する
1012:デフォルトの名無しさん
16/11/05 12:49:43.04 oE61kQsA.net
カンマで区切るだけだと思うが、、、
理由もなしに辟易するのもなんだよな。
例えば
Parser() : base(null) { }
これが何をいみするのかを調べるには、ある程度のキーワードがあれば検索できる。
baseはここでは特徴的なキーワードだからbaseで検索すればなにか手がかりが掴める
はずだ。
あるいはこの行をコメントアウトしてみるとか、トレースしてみるとかすると何か
手がかりがつかめるかもしれない。
1013:デフォルトの名無しさん
16/11/05 12:54:27.64 Bnw8PuKo.net
>>985
フィールドがダブルコーテーションで囲まれてることも考慮しないと
1014:デフォルトの名無しさん
16/11/05 12:56:50.22 pzDrzyW2.net
>>979
単体で直接読み書きできるのにサポートしてないってどう言うこと?
1015:デフォルトの名無しさん
16/11/05 12:57:59.54 pzDrzyW2.net
>>980
サーバー上で Excel ファイルを生成してダウンロードさせるとかの用途もあるしね
1016:デフォルトの名無しさん
16/11/05 12:58:49.61 Vdk40yXv.net
CSVならCsvHelperをNugetしてくれば解決さ
1017:デフォルトの名無しさん
16/11/05 13:00:04.39 pzDrzyW2.net
>>983
只で試せるんだから自分でやってみなよ
ここはそういう板ですよ
1018:デフォルトの名無しさん
16/11/05 13:02:33.65 pzDrzyW2.net
>>986
ダブルクォーテーションのエスケープはどうするとか、改行はどうするとか、やり出すとキリがないからなぁ
1019:デフォルトの名無しさん
16/11/05 13:13:48.58 93kgJ5Ii.net
>>987
上げ足取る気満々の奴に馬鹿正直に答える俺もどうかしてると思うが、
少なくとも読み込みに関してはサポートしているのは「任意のデリミタ区切りのテキストファイル」
であってTSVじゃない。
それに対してCSVはCSVとして直接扱える。
PCに必ずしも明るいとは限らない俺たちのエンドユーザーに対してどちらがよりフレンドリーか明らか。
っていうか、最初からそんなこと言われなくてもわかってるだろうにくっだらない。