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


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

C#, C♯, C#相談室 Part93



1 名前:デフォルトの名無しさん(ワッチョイ 1e06-m8Mb) mailto:sageteoff [2017/04/22(土) 08:52:00.93 ID:iVvswOrb0.net]
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

■コードを貼る場合はこちら
ideone.com/

■前スレ
C#, C♯, C#相談室 Part92
echo.2ch.net/test/read.cgi/tech/1485589613/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

401 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:39:35.51 ID:MhKfyDgC0.net]
>>385
意味不明。何を書いて欲しいのか分からん。

> A.B().ToString()
これはAのメソッドB()を呼んでその戻り値に対してToString()を呼ぶ。
少なくともJavaScriptではそう。

で、何をしたい場合の記述が欲しいんだ?

402 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:48:14.18 ID:VOfp/P7BM.net]
>>387
思い違いをしていた
A.B().ToString()とA.B.ToString()で区別できる
クラスにフィールドとメソッドを同名にできないから区別できる
右結合と左結合は関係なかったけど

403 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 14:54:44.86 ID:MhKfyDgC0.net]
>>385
エスパーすると、言いたいことは分かった。
お前は「第一級オブジェクト」も理解しておらず、「誤解」している。ちゃんと勉強しろ。

「第一級オブジェクト」ってのは、通常のオブジェクトと関数オブジェクトを区別しない。
だから書式は当然同じだし、正しく理解していればこの点が疑問になりようもない。


>>388
なら日本語を勉強しろ
> B()というメソッド自体に係ってるのか
これで何を表現しようとしたか言ってみろ。それは
> A.B.ToString()
ではないだろ。

404 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:04:32.47 ID:VOfp/P7BM.net]
>>386
誤解は悲惨
delegateを削除しろと言って削除してみたらActionもFuncも使えませんでした
eventも使えませんでした

もちろん言語レベルで変数としてのデリゲートの代わりになるものもありません

>>389
> > A.B.ToString()
> ではないだろ。
いやいやそこはそのままであってるし普通にそう理解できないのか?
A.B.ToString()が正解
逆にどう勘違いしたのか聞きたい

405 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:06:54.66 ID:VOfp/P7BM.net]
本当にC#からdelegateを削除しろって言ってるんだったらどこかおかしい
何にも理解してない

406 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:06:56.64 ID:AO7Grx3Qa.net]
プロパティなんて関数オブジェクトみたいなもんだな
プロパティ

407 名前:ノ引数渡してぇ []
[ここ壊れてます]

408 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:07:41.71 ID:VOfp/P7BM.net]
>>392
っVB.net

409 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:18:29.92 ID:MhKfyDgC0.net]
>>390
日本語で言うと、
> B()というメソッド自体に係ってるのか
と理解したって事だよ。

>>391
お前がな。
他言語にはdelegateなんて無いが、何も問題ないだろ。
あれ?って思えないのか?
(今すぐ廃止していいかどうかはまた別だが)

>>388
> クラスにフィールドとメソッドを同名にできないから区別できる
これは先見の明があったかもな。
関数を「第一級オブジェクト」に昇格させるのに文法的制約がない。
Javaに対しての利点にはなり、生き残る道かも。



410 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:25:50.19 ID:MhKfyDgC0.net]
>>392
JavaScriptではオーバーライドすれば出来る。
フィールド/メソッドの区別がなく、名前だけだから。
C#的には派生クラスで「プロパティ」「を同名の「メソッド」でオーバーライドだが、
これが型チェック的に無理なのか?
しかし名前の重複を許していないのだから、今後の拡張は可能のはずだが。

JavaScriptのデタラメ文法はどうかという奴もいるが、慣れてしまうと、
型あり言語の「型が違うだけ」で色々制約されるのも相当な糞だと気づけるぞ。
型検査はエラーではなく警告に留めるべきで、
プログラマがOKすれば型が不一致でも通してくれた方がマジで楽。
一番近いのはCってことになってしまうが。

411 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:29:15.96 ID:a58WBe6r0.net]
ア土曜の昼間からウアウアーの見本市

412 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:29:59.09 ID:a58WBe6r0.net]
友人ゼロのキモオタオッサンは他にやることないのかい

413 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 16:02:02.79 ID:kvLDmgw/0.net]
他の言語はともかくC#はGUIのイベントの管理にデリゲートのマルチキャスト使ってるんだから無かったら困るだろ

414 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 16:54:07.78 ID:DBY1R4Jva.net]
だからメソッドがオブジェクトかどうかなんて話はただの衒学趣味的な無益な話w
そんな話は「ではオブジェクトって何?」って不毛な議論になるだけでしょw
初心者がデリゲートを理解して使えるようになるための屁の役にも立たないよw

>>398
素直に考えればデリゲート自身にマルチキャストの機能を持たせるんじゃなく、
シングルキャストのデリゲートのリストとして実装する方法もあったはず

なんか理由があって「こういう」風になってるんだろうが俺には積極的理由はよくわからんね。
ジェネリックをデリゲートで制約できないことと関係があるのかもしれないが

なまじマルチキャストなんて機能があるせいで何だかわかりづらくなってる面は否定できないと思う

415 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:08:52.90 ID:MhKfyDgC0.net]
>>398
GUIに関してはdelegateの導入は不要だったで決着してる。
GUIにはOOPよりMVCの方が数段マシで、WPFもそうなってるだろ。
onclickにthisがバインドされている意味がそもそも無いんだよ。

決着が付いてないのはデータフロープログラミングをするときだ。
JavaScriptではObject.observeの導入が計画され、一部フィーバーしていたが、ポシャった。
https://www.html5rocks.com/ja/tutorials/es7/observe/
以下によると、非同期なのが使えなかったらしい。
tech.nitoyon.com/ja/blog/2015/11/18/death-of-oo/
JavaScriptの非同期は最早宗教だが、
はっきり言って無駄に非同期すぎて、余計にやりにくくなっているケースもある。これもそう。

C#は独自eventを実装出来るし、そのためにdelegateが用意されているから、
「データフロープログラミング」を文法的にサポートしているとは言える。
ただ、それ以前に、「データフロープログラミング」が主流ではないが。
お前らも実際、やってないだろ。
関数型の次に来るって事もなさそうだし。

とはいえ、上記の通り、今のJavaScriptではデータフロープログラミングは面倒だし、
getter/setterを頑なに拒むC++ではものすごくウザくなって事実上無理だ。
次の波が来ればevent/delegateも再評価されるかもしれん。

416 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:12:21.10 ID:MhKfyDgC0.net]
>>399
> シングルキャストのデリゲートのリストとして実装する方法もあったはず
同感。

417 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:15:16.30 ID:bMpGWGQ30.net]
理解してなくても問題なく使えるからって、それを理解しようとするのは悪い事じゃないけど
もとの発端はなんだったんだこれ

418 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:28:51.92 ID:AO7Grx3Qa.net]
デリケートじゃないか?w

419 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:32:16.71 ID:1jan2CXL0.net]
>>402
>>327 のデリケートが事の発端



420 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 17:43:13.42 ID:VOfp/P7BM.net]
誰かさんの大好きなLinqはdelegateの塊なんだけどdelegateなくなっていいのかな
他の実装ではdelegate使ってないけど今の.netではデリゲートで実装されている

421 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 18:48:11.73 ID:0oARoVrcM.net]
デリゲートにラムダ式にLinq大好きだ!
これ無くして生きてけない!
チームの誰も読めないから放置されて我が道を歩んでいる。
生産性と品質が高いから客には好評です。

422 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:25:40.95 ID:7jH+OfQ/0.net]
>>406
チームの誰もが読めないという事は保守性に欠けると言う事ですね

423 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:33:41.95 ID:0oARoVrcM.net]
そうだね。
でも、Linqバリバリ使ったらそうなるよね。
みんなの勉強しろよってこと。

424 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:39:16.25 ID:h8CnrujR0.net]
Linqが分からないってのはラムダ式を理解できないってことなの?

425 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:43:00.38 ID:54mp5fzVM.net]
行列計算ライブラリ書いてるときに
おれ掛け算わからんからおれに合わせて全部足し算で実装して
おれはいまお前の案件に関わってないけど将来そのライブラリメンテするかもしれんからヨロシクな
とか言う同僚がいたらこいち頭おかしいのかなって思うじゃん
いやいや掛け算を勉強してからっていうか最低限の単位を取ってからメンテしろよってなるじゃん普通
これがLinqやλやデザインパターンになると当たり前のように底辺至上主義がまかり通る不思議な業界

426 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:47:26.87 ID:kvLDmgw/0.net]
LINQはC#にしかないからまだわかるけどラムダ式はいまどきの言語ならほぼ実装してるから知ってないとまずいよね

427 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:50:03.81 ID:2splWvty0.net]
linqてC#にしかないのか

428 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 20:52:58.46 ID:54mp5fzVM.net]
Linqにも類似品あるよ
Javaのstreamやpythonのリスト内包表記など
というかそもそも単なるiterator patternでしかないからC#が起源ってわけでもない

429 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:00:28.55 ID:4y2IVpvw0.net]
Linq以前にIEnumerableの意味が解らない人がいるからどうしようもない
.NET2.0から順に教えろってことかよ・・・



430 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:03:28.98 ID:MhKfyDgC0.net]
>>410
と、底辺至上主義がまかり通る所の意識高い系が申しております

>>413
どう見てもSQLが起源だろ

431 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:07:24.39 ID:54mp5fzVM.net]
>>415
クエリ形式の文法はSQLが起源かもしれんが
実装はSQLとは全く関係がないよ
C#などの実装はまさしくiterator patternだけど
SQLの実装をiterator patternでやろうとしたら遅すぎる

432 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:07:34.76 ID:4W3gH+0Ua.net]
そもそも書けない奴は論外として、使うなってのは同意できる
簡潔に判りやすいラムダ書いてくれりゃいいが、わざとやってんじゃねってぐらい難読化する奴いるからな
正規表現、SQ、掲示板の長文も同じだな

433 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:12:52.02 ID:0oARoVrcM.net]
Linqに限らず最近のソフトウェア技術は高度で生産性も高くなってる。
昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
理由出来ない人は辞めればいい。
生産性が飛躍的に上がってるので理解出来る奴だけで

434 名前:間に合うよ。 []
[ここ壊れてます]

435 名前:デフォルトの名無しさん [2018/06/09(土) 21:17:22.22 ID:ekScYlKMa.net]
自称プログラマー(趣味)ならともかく職業プログラマーでLinqすら理解出来ないやついんの?

436 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:23:52.36 ID:7jH+OfQ/0.net]
Linqを十分に理解できても、可読性や保守性を大事にする人は
多少冗長でも他人が理解しやすい易しいコードを書くんじゃないの?

437 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:25:54.76 ID:2splWvty0.net]
Linqてそんな可読性悪くないと思うけどなぁ
コメント書いときゃ何となくわかるべ

438 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:26:49.03 ID:v7FNkyrH0.net]
>>418
出来ない人にも生活あるから辞めろとは言えないけどチームは分けて欲しい
使えて使いたい人がどんどん流出して出来ない人だけの会社になると悲惨

439 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:30:02.70 ID:0oARoVrcM.net]
>>420
圧倒的に生産性が高かったらどうなの。
最近の案件は短納期になってるし、昔のコボルみたいに何十年もメンテして使うシステムも少ないと思う。



440 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:32:37.20 ID:VrCE6n6GM.net]
ゴミのようなやりとり
いや、ゴミに失礼だな

441 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:33:12.66 ID:0oARoVrcM.net]
LinqよりSQLの方が難しいぞ。
SQLは難しいから使うなって言うのか?

442 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:35:27.62 ID:ZDY9COOVd.net]
業務でいじるレベルのコードなんて知らないものでもグーグル先生いりゃ大抵なんとかならない?
linqも初めて見たときはとっつきにくくてわかりづらかったけど使ってりゃ嫌でも覚えちゃうよ
つっても当然すべてを使いこなしてるわけじゃなくて自分に必要な範囲のみ理解してる程度
業界によってだいぶ差はありそうだけど

443 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:35:56.65 ID:7jH+OfQ/0.net]
生産性は保守運用まで含めてトータルで考えるべきで
保守性が損なわれればトータルコストも引き上がる

444 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:36:22.73 ID:0oARoVrcM.net]
>>424
あんたの書き込みがゴミだから。
オレらのやりとりがゴミだって言うなら、そう感じさせる様な高踏的な書き込み頼む。

445 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 21:51:21.02 ID:lCnNI9uz0.net]
保守性の低い Linq のコードってたとえばどんなの?
自分は他人のを読む場合でも特に困ったことないけどな〜。

446 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 22:13:44.82 ID:MhKfyDgC0.net]
>>416
イテレータの起源なら、C++(1983)は最初から持ってた。
C++のOOPはSimula発で、そっちが持ってたかは知らん。

いずれにしても、Java発の技術は存在しないぞ。
C#はLinqと、多分asyncもか?頑張ってる方だと思うが。
(あとちょっと違うがIDEのインテリセンスもC#が初のはず)

447 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 22:18:01.39 ID:a58WBe6r0.net]
クソカスの分際で人間様に話しかけてくるな
クソカスが引っ付くわ

448 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 22:36:24.46 ID:d5fCz/GJ0.net]
>>430
> (あとちょっと違うがIDEのインテリセンスもC#が初のはず)
インテリセンスはVB5.0の時代からあるんだが...

449 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 22:41:24.00 ID:MhKfyDgC0.net]
>>426
> 自分に必要な範囲のみ理解してる程度
多分これくらいが適正で、これなら大して問題にならないんだよ。

問題は、意識高い系馬鹿の>>418
> 昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
みたいな、おかしな奴がいることだよ。

Linq自体でそんなに格差が出来るはずもない。
仮に、Linq部分を関数呼び出しに変えたところで、本体のコード構造は全く変わらないだろ。
便利機能だが、その程度でしかないんだよ。
逆に言うと、制御構造の違いで勝負出来ない、
新文法が読めることしか威張れない馬鹿がそこに無駄に拘っている気がする。



450 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:00:28.94 ID:0BGOlb7W0.net]
linq で Where と OrderBy 使ったところをチームリーダーから For と List<T>.Sort() に書き

451 名前:キえられたことはある。理由は「他と違うから」
他と書き方を合わせておくのが大事なのはわかるけど…
[]
[ここ壊れてます]

452 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:10:59.82 ID:1jan2CXL0.net]
コーディング規約があるのならそれに合わせろよ

453 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:45:05.02 ID:v7FNkyrH0.net]
>>434
他と違うからって理由で直すのは良くないと思うな
本来関係ないはずのクラスの間に存在しないはずの関係性を作りこんでしまう
その結果、必要ない作業や、縛りを生み出して生産性を下げることになる
俺が経験したものだと
すでに書き終えたforeachをすべてforに統一
テスト済のDAO、DTOのsnake_caseを他レイヤに合わせてCamelCaseに統一
この2つが最高にバカバカしかった

454 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:56:36.61 ID:wFjp4I59M.net]
カプセル化を知らない人が少なくないのかな
「publicメンバーはクラス間のコミュニケーション円滑化のために規約として形式化しましょう」ぐらいならまあ理解できるが
「Linqはやめてループにしてくれ」なんて内部実装の形式にまで踏み込んでくるなよな
クラススコープで違和感なければそれでいいだろ

455 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 23:59:33.29 ID:MhKfyDgC0.net]
>>434
俺はC#erではないが…。

単発のLinqも認めてもらえないのならご愁傷様。あれは普通に読める範囲だ。
見た目、Linq自体にはサブクエリ無しか?ならそんな酷いことにはならないはずだが、
例えばSQLでは再帰呼び出しが出来たりして、
マンデルブロだパズル解くだとか、おかしな事になってる。
https://www.sqlite.org/lang_with.html
Linqでどこまで出来るか知らんが、こんなん書かれたら殴りたくもなるだろ。

基本的には関数呼び出しにしてその先は隠蔽、
つまりLinq実装かFor/List/Sort実装かは上位からは見えない、ってことにすれば関係ないはずだ。
ただ、その場にベタで「何を選択しているか」が書かれている方が読みやすいことは多々あり、
Linqもその局面で使われているとは思うので、全面書き直しだと余計に読みにくくなるとも思うが。

456 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 00:07:12.73 ID:wNo6w9bX0.net]
LINQってCube扱えるんだっけ?

457 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 00:11:20.35 ID:FNJYuW1ra.net]
>>437
どうでもいい議論だけど、一言。
カプセル化っていうのは「メソッドの中は可読性考えなくてよい」って意味じゃないよw

LINQ(というかクエリ式)嫌いの大半は批判してる人間がそもそも理解してないだけだと思うが一理はある。
それは使い方によっては複数の処理が有機的につながった、適切に分割統治されてない、
可読性の低いコードになるからだ

実際、筋の悪いプログラマが好む100行オーバーのメソッドに近い物になりうる

458 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 00:20:43.11 ID:kZ6+r7gZM.net]
>>440
どう読んだら「メソッドの中の可読性は考えなくていいよ」になるんだろ
外部の都合を内部実装にまで持ち込むな
クラス内での可読性が十分ならそれでいいだろ
って主張な
正しく動いて綺麗なコードを他のクラスの都合で書き直す
俺はこれある意味カプセル化破壊と言っていいと思う
もちろん本来の意味でのカプセル化とは違うのはわかってる

459 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 02:00:10.36 ID:gGHljlXMa.net]
>>441
どう読んでもそうとしか読めません
自分で自分の書いてあることが理解できないのかw

「メソッドの中は可読性考えなくてよい」と言っているのでなければ
>>437の1行目と4行目はつながらない。

カプセル化を理解していてもメソッドの中の可読性、例えば
「Linqはやめてループにしてくれ」と言うことはあり得る。

なぜなら、カプセル化とは「メソッドの中の可読性は考えなくていいよ」という意味ではないからだ



460 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 02:01:02. ]
[ここ壊れてます]

461 名前:37 ID:gGHljlXMa.net mailto: >>442
いきなり訂正

× >>437の1行目と4行目はつながらない。
>>437の1行目と3行目はつながらない。
[]
[ここ壊れてます]

462 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 05:17:43.99 ID:4PiVyKtW0.net]
ランダムな指定回数オブジェクトを作成する方法ないですか
7時まで待つ

463 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 06:46:45.50 ID:Kj8YEAmO0.net]
>>442
横からだけど、そう思えるのはお前さんがLinq使ったら可読性悪くなるって決めつけてるからじゃないの?

464 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 06:46:55.66 ID:CFkipoua0.net]
Random

465 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 08:32:28.14 ID:RI4Vnlqm0.net]
>>436
コーディング規約を読んでないお前か
コーディング規約を定めてないお前の組織がバカなだけ

466 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 08:41:39.38 ID:HMOXZXoS0.net]
この話いつまでやるの?

467 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 08:43:37.52 ID:kZ6+r7gZM.net]
>>447
コーディング規約がバカなんだよ

468 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 09:22:16.29 ID:z8uYskXvM.net]
就職できるように頑張れ

469 名前:デフォルトの名無しさん [2018/06/10(日) 09:35:53.15 ID:0WF1gq+N0.net]
スレにも規約作って変な奴は矯正しないといかんな。



470 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 09:58:39.22 ID:kZ6+r7gZM.net]
変数を関数の先頭に書く
returnは1つまで
変数名の先頭に型の略字を書く
varは使ってはいけない

こういうひと昔前まで大衆が信じてたバカ規約
システム全体で統一感のあるコードを書くって規約もいずれその仲間入りするとおもう
いまはまだIT業界全体が未熟だからみんな気付いてないだけ

471 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 10:22:35.79 ID:YCs8n+CmM.net]
ちょっといいですか、この関数100行超えてます。
規約違反で可読性なくなります!
レビューで積極的に発言するサル、何も知らないで自分は立派なプログラム書いてると思っている。
ちなみににLinqの方が可読性上がるよ。
Linqはやりたいことをズバッと書ける。
古いやり方だと、このforループなに?ってなる。
forループは実装手段であって目的じゃないから。
単に慣れ、新しいこと勉強したくない連中が可読性だの規約だの持ち出す。

472 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 10:39:02.74 ID:0nkwjY0q0.net]
分割すれば良いじゃん
それが出来ないことを相手のせいにするな

473 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 11:01:43.43 ID:wNo6w9bX0.net]
魔板でやれや

474 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 12:09:56.40 ID:ycwHE1rSa.net]
>>445
どこが決めつけてる>>440

475 名前:デフォルトの名無しさん [2018/06/10(日) 13:05:02.68 ID:fXHYwG6AM.net]
C#のLinqを使っているのならPythonの方が2倍速くなる
https://qiita.com/yniji/items/6585011633289a257888

C# の Linq が python の2倍遅い、は嘘
https://qiita.com/Akira_Kido_N/items/d9519b05ccee6a67158f

476 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 13:22:36.14 ID:8jSf3er6M.net]
俺が知りたいのは、オブジェクトをx回作るやり方なんだよ

477 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 13:47:05.85 ID:FyF+mujLM.net]
for(var i=0;i<n;i++)Days[i]=new Day(i);

478 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 14:27:51.17 ID:A9qrJ+Er0.net]
linqで発狂してるジジイはSQL絡みでよくわからないエラーに出くわして理解できなかったんじゃないの

479 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 17:59:54.77 ID:Nj3/us+lM.net]
もう全部varでええやろ



480 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 18:16:30.94 ID:Ve8EHXbu0.net]
保守性の低い Linq を使ったコードの実例を見たいんだけど。

481 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 18:55:50.21 ID:FyF+mujLM.net]
クエリ式を使ったのは単純なのはわかりやすいけど複雑になるとお手上げ
メソッド形式で使ったとしても逆にクエリ式のfromを二重の使ったほうがいいのにSelectManyを使ってるやつは非常に醜い
JoinやAggregateも可読性が以上に低い

482 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 18:58:38.79 ID:0FFsGNUEa.net]
意見は分かれる

483 名前:と思うが、川俣大先生が連載記事で引用してた
このサンプルあたりがボーダーラインかね
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/how-to-query-for-duplicate-files-in-a-directory-tree-linq

個人的にはこれも読みづらい

実にどうでもいい話だが、LINQは頭字語のはずなのでLinqって表記には違和感しか感じない。
あと、これもくどいが、LINQじゃなくてクエリ式の話をしてるんじゃないのかと
[]
[ここ壊れてます]

484 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 19:04:29.50 ID:FyF+mujLM.net]
>>464
これはだめな例じゃないかな?
何をやってるかがわからない

485 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 19:22:31.41 ID:0nkwjY0q0.net]
これの事?
var queryDupNames =
  from file in fileList
  group file.FullName.Substring(charsToSkip) by file.Name into fileGroup
  where fileGroup.Count() > 1
  select fileGroup;

基礎的なものだけで構築されていて何をやっているか一目瞭然じゃん

486 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 19:59:10.70 ID:7XGbwrsW0.net]
これがわかんないって言うならもうlinq禁止しか無いね
そんな人間がいるプロジェクトには関わりたくないけど

487 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 20:06:35.03 ID:kZ6+r7gZM.net]
全員linq読めても将来読めない人がメンテするかもしれないから禁止
実際にあった話

488 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 20:19:14.72 ID:Ve8EHXbu0.net]
ああこれが分からないってんなら確かに LINQ 禁止だわ。w
でもそんなのに付き合ってやる義理はないんじゃね? あとは規約の問題だな。

489 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 20:29:40.62 ID:FyF+mujLM.net]
自分ならメソッド構文で書く



490 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 21:47:34.28 ID:WVhS1nfV0.net]
分からないなら勉強するなり聞くなりすればいいじゃんとは思うけどな
可読性あげるのは理解できるが便利な関数を規制するのはおかしいくない?
いつまでたっても個人の技術力上がらなくなるけどいいの?とは思う

491 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 21:54:10.88 ID:FyF+mujLM.net]
わからないって意味を誤解してるだろ

var queryDupNames = fileList.Groupby(f=>略, f=>略).Where(g=>g.Count>1);

メソッドだとほぼ一瞬で何をやってるかわかるだろ
わざわざ行数を割いて理解に時間のかかるクエリ式を使う意味はねえよ

492 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:13:28.91 ID:WVhS1nfV0.net]
あークエリ式じゃなくてラムダで書いた方が見やすいって話?
それなら同意

493 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:39:32.51 ID:7XGbwrsW0.net]
そんなんリファクタすりゃ済む話じゃん

494 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:43:36.88 ID:mLmPdblh0.net]
リファクタリングするにもユニットテストで担保取れないレベルの酷いプログラム沢山あるからなあ

495 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:53:21.31 ID:kZ6+r7gZM.net]
低レベルなプログラマに合わせたコードはテストしにくいひどいコードになりがち
インターフェース禁止だとか当たり前のように言ってくるからねあいつら

496 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 22:54:32.29 ID:SjjA9sVt0.net]
今日も自閉症の見本市

497 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 23:06:57.39 ID:0nkwjY0q0.net]
低レベルなプログラマとの話し合いは無駄だと言うことがよくわかった

498 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 14:37:15.67 ID:dC6OTsii0.net]
リファクタリングをリファクタ言うの非常に気持ち悪い
refactor は refactoring から派生した単語
refactor という動詞は使われだして日も浅く、まだ技術系のスラングの域でしかない

VS には「リファクター」としてリファクタリングを行うメニューが提供されているが
小洒落た動詞として使用される分には気にならないが、
日本人が「リファクタする」とか使ってると「カンパニーのコンプライアンスをガバナンスする」とかと同様に見える
いやもっとあれか「コンプラをガバーンする」とかと同じレベルかな? (govern は正し

499 名前:「動詞)

https://english.stackexchange.com/questions/57750/is-there-a-verb-refactor-meaning-doing-refactoring-in-english

……MSのスペルチェッカで引っかかってたのか(現在は知らんが)
[]
[ここ壊れてます]



500 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 17:24:57.86 ID:FO+2sVJQ0.net]
カタカナ表記する時点で英語のことなんて気にしてちゃやってられんよ

501 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 17:36:15.53 ID:xa0hP702a.net]
唐突に何なんだろうねw
まあ、某社のVS用のリファクタリングツールの旧名がRefactor !"だったね。






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

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

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