C#, C♯, C#相談室 P ..
[2ch|▼Menu]
401:デフォルトの名無しさん
18/06/09 14:39:35.51 MhKfyDgC0.net
>>385
意味不明。何を書いて欲しいのか分からん。
> A.B().ToString()
これはAのメソッドB()を呼んでその戻り値に対してToString()を呼ぶ。
少なくともJavaScriptではそう。
で、何をしたい場合の記述が欲しいんだ?

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

403:デフォルトの名無しさん
18/06/09 14:54:44.86 MhKfyDgC0.net
>>385
エスパーすると、言いたいことは分かった。
お前は「第一級オブジェクト」も理解しておらず、「誤解」している。ちゃんと勉強しろ。
「第一級オブジェクト」ってのは、通常のオブジェクトと関数オブジェクトを区別しない。
だから書式は当然同じだし、正しく理解していればこの点が疑問になりようもない。

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

404:デフォルトの名無しさん
18/06/09 15:04:32.47 VOfp/P7BM.net
>>386
誤解は悲惨
delegateを削除しろと言って削除してみたらActionもFuncも使えませんでした
eventも使えませんでした
もちろん言語レベルで変数としてのデリゲートの代わりになるものもありません
>>389
> > A.B.ToString()
> ではないだろ。
いやいやそこはそのままであってるし普通にそう理解できないのか?
A.B.ToString()が正解
逆にどう勘違いしたのか聞きたい

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

406:デフォルトの名無しさん
18/06/09 15:06:56.64 AO7Grx3Qa.net
プロパティなんて関数オブジェクトみたいなもんだな
プロパティ


407:ノ引数渡してぇ



408:デフォルトの名無しさん
18/06/09 15:07:41.71 VOfp/P7BM.net
>>392
っVB.net

409:デフォルトの名無しさん
18/06/09 15:18:29.92 MhKfyDgC0.net
>>390
日本語で言うと、
> B()というメソッド自体に係ってるのか
と理解したって事だよ。
>>391
お前がな。
他言語にはdelegateなんて無いが、何も問題ないだろ。
あれ?って思えないのか?
(今すぐ廃止していいかどうかはまた別だが)
>>388
> クラスにフィールドとメソッドを同名にできないから区別できる
これは先見の明があったかもな。
関数を「第一級オブジェクト」に昇格させるのに文法的制約がない。
Javaに対しての利点にはなり、生き残る道かも。

410:デフォルトの名無しさん
18/06/09 15:25:50.19 MhKfyDgC0.net
>>392
JavaScriptではオーバーライドすれば出来る。
フィールド/メソッドの区別がなく、名前だけだから。
C#的には派生クラスで「プロパティ」「を同名の「メソッド」でオーバーライドだが、
これが型チェック的に無理なのか?
しかし名前の重複を許していないのだから、今後の拡張は可能のはずだが。
JavaScriptのデタラメ文法はどうかという奴もいるが、慣れてしまうと、
型あり言語の「型が違うだけ」で色々制約されるのも相当な糞だと気づけるぞ。
型検査はエラーではなく警告に留めるべきで、
プログラマがOKすれば型が不一致でも通してくれた方がマジで楽。
一番近いのはCってことになってしまうが。

411:デフォルトの名無しさん
18/06/09 15:29:15.96 a58WBe6r0.net
ア土曜の昼間からウアウアーの見本市

412:デフォルトの名無しさん
18/06/09 15:29:59.09 a58WBe6r0.net
友人ゼロのキモオタオッサンは他にやることないのかい

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

414:デフォルトの名無しさん
18/06/09 16:54:07.78 DBY1R4Jva.net
だからメソッドがオブジェクトかどうかなんて話はただの衒学趣味的な無益な話w
そんな話は「ではオブジェクトって何?」って不毛な議論になるだけでしょw
初心者がデリゲートを理解して使えるようになるための屁の役にも立たないよw
>>398
素直に考えればデリゲート自身にマルチキャストの機能を持たせるんじゃなく、
シングルキャストのデリゲートのリストとして実装する方法もあったはず
なんか理由があって「こういう」風になってるんだろうが俺には積極的理由はよくわからんね。
ジェネリックをデリゲートで制約できないことと関係があるのかもしれないが
なまじマルチキャストなんて機能があるせいで何だかわかりづらくなってる面は否定できないと思う

415:デフォルトの名無しさん
18/06/09 17:08:52.90 MhKfyDgC0.net
>>398
GUIに関してはdelegateの導入は不要だったで決着してる。
GUIにはOOPよりMVCの方が数段マシで、WPFもそうなってるだろ。
onclickにthisがバインドされている意味がそもそも無いんだよ。
決着が付いてないのはデータフロープログラミングをするときだ。
JavaScriptではObject.observeの導入が計画され、一部フィーバーしていたが、ポシャった。
URLリンク(www.html5rocks.com)
以下によると、非同期なのが使えなかったらしい。
URLリンク(tech.nitoyon.com)
JavaScriptの非同期は最早宗教だが、
はっきり言って無駄に非同期すぎて、余計にやりにくくなっているケースもある。これもそう。
C#は独自eventを実装出来るし、そのためにdelegateが用意されているから、
「データフロープログラミング」を文法的にサポートしているとは言える。
ただ、それ以前に、「データフロープログラミング」が主流ではないが。
お前らも実際、やってないだろ。
関数型の次に来るって事もなさそうだし。
とはいえ、上記の通り、今のJavaScriptではデータフロープログラミングは面倒だし、
getter/setterを頑なに拒むC++ではものすごくウザくなって事実上無理だ。
次の波が来ればevent/delegateも再評価されるかもしれん。

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

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

418:デフォルトの名無しさん
18/06/09 17:28:51.92 AO7Grx3Qa.net
デリケートじゃないか?w

419:デフォルトの名無しさん
18/06/09 17:32:16.71 1jan2CXL0.net
>>402
>>327 のデリケートが事の発端

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

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

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

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

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

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

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

427:デフォルトの名無しさん
18/06/09 20:50:03.81 2splWvty0.net
linqてC#にしかないのか

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

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

430:デフォルトの名無しさん
18/06/09 21:03:28.98 MhKfyDgC0.net
>>410
と、底辺至上主義がまかり通る所の意識高い系が申しております
>>413
どう見てもSQLが起源だろ

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

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

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


434:間に合うよ。



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

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

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

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

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

440:デフォルトの名無しさん
18/06/09 21:32:37.20 VrCE6n6GM.net
ゴミのようなやりとり
いや、ゴミに失礼だな

441:デフォルトの名無しさん
18/06/09 21:33:12.66 0oARoVrcM.net
LinqよりSQLの方が難しいぞ。
SQLは難しいから使うなって言うのか?

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

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

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

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

446:デフォルトの名無しさん
18/06/09 22:13:44.82 MhKfyDgC0.net
>>416
イテレータの起源なら、C++(1983)は最初から持ってた。
C++のOOPはSimula発で、そっちが持ってたかは知らん。
いずれにしても、Java発の技術は存在しないぞ。
C#はLinqと、多分asyncもか?頑張ってる方だと思うが。
(あとちょっと違うがIDEのインテリセンスもC#が初のはず)

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

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

449:デフォルトの名無しさん
18/06/09 22:41:24.00 MhKfyDgC0.net
>>426
> 自分に必要な範囲のみ理解してる程度
多分これくらいが適正で、これなら大して問題にならないんだよ。
問題は、意識高い系馬鹿の>>418
> 昔も人によって生産性に差が出たが、最近だと理解出来るか出来ないか?ぐらいの圧倒的な格差だ。
みたいな、おかしな奴がいることだよ。
Linq自体でそんなに格差が出来るはずもない。
仮に、Linq部分を関数呼び出しに変えたところで、本体のコード構造は全く変わらないだろ。
便利機能だが、その程度でしかないんだよ。
逆に言うと、制御構造の違いで勝負出来ない、
新文法が読めることしか威張れない馬鹿がそこに無駄に拘っている気がする。

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


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



452:デフォルトの名無しさん
18/06/09 23:10:59.82 1jan2CXL0.net
コーディング規約があるのならそれに合わせろよ

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

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

455:デフォルトの名無しさん
18/06/09 23:59:33.29 MhKfyDgC0.net
>>434
俺はC#erではないが…。
単発のLinqも認めてもらえないのならご愁傷様。あれは普通に読める範囲だ。
見た目、Linq自体にはサブクエリ無しか?ならそんな酷いことにはならないはずだが、
例えばSQLでは再帰呼び出しが出来たりして、
マンデルブロだパズル解くだとか、おかしな事になってる。
URLリンク(www.sqlite.org)
Linqでどこまで出来るか知らんが、こんなん書かれたら殴りたくもなるだろ。
基本的には関数呼び出しにしてその先は隠蔽、
つまりLinq実装かFor/List/Sort実装かは上位からは見えない、ってことにすれば関係ないはずだ。
ただ、その場にベタで「何を選択しているか」が書かれている方が読みやすいことは多々あり、
Linqもその局面で使われているとは思うので、全面書き直しだと余計に読みにくくなるとも思うが。

456:デフォルトの名無しさん
18/06/10 00:07:12.73 wNo6w9bX0.net
LINQってCube扱えるんだっけ?

457:デフォルトの名無しさん
18/06/10 00:11:20.35 FNJYuW1ra.net
>>437
どうでもいい議論だけど、一言。
カプセル化っていうのは「メソッドの中は可読性考えなくてよい」って意味じゃないよw
LINQ(というかクエリ式)嫌いの大半は批判してる人間がそもそも理解してないだけだと思うが一理はある。
それは使い方によっては複数の処理が有機的につながった、適切に分割統治されてない、
可読性の低いコードになるからだ
実際、筋の悪いプログラマが好む100行オーバーのメソッドに近い物になりうる

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

459:デフォルトの名無しさん
18/06/10 02:00:10.36 gGHljlXMa.net
>>441
どう読んでもそうとしか読めません
自分で自分の書いてあることが理解できないのかw
「メソッドの中は可読性考えなくてよい」と言っているのでなければ
>>437の1行目と4行目はつながらない。
カプセル化を理解していてもメソッドの中の可読性、例えば
「Linqはやめてループにしてくれ」と言うことはあり得る。
なぜなら、カプセル化とは「メソッドの中の可読性は考えなくていいよ」という意味ではないからだ

460:デフォルトの名無しさん
18/06/10 02:01:02.


461:37 ID:gGHljlXMa.net



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

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

464:デフォルトの名無しさん
18/06/10 06:46:55.66 CFkipoua0.net
Random

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

466:デフォルトの名無しさん
18/06/10 08:41:39.38 HMOXZXoS0.net
この話いつまでやるの?

467:デフォルトの名無しさん
18/06/10 08:43:37.52 kZ6+r7gZM.net
>>447
コーディング規約がバカなんだよ

468:デフォルトの名無しさん
18/06/10 09:22:16.29 z8uYskXvM.net
就職できるように頑張れ

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

470:デフォルトの名無しさん
18/06/10 09:58:39.22 kZ6+r7gZM.net
変数を関数の先頭に書く
returnは1つまで
変数名の先頭に型の略字を書く
varは使ってはいけない
こういうひと昔前まで大衆が信じてたバカ規約
システム全体で統一感のあるコードを書くって規約もいずれその仲間入りするとおもう
いまはまだIT業界全体が未熟だからみんな気付いてないだけ

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

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

473:デフォルトの名無しさん
18/06/10 11:01:43.43 wNo6w9bX0.net
魔板でやれや

474:デフォルトの名無しさん
18/06/10 12:09:56.40 ycwHE1rSa.net
>>445
どこが決めつけてる>>440

475:デフォルトの名無しさん
18/06/10 13:05:02.68 fXHYwG6AM.net
C#のLinqを使っているのならPythonの方が2倍速くなる
URLリンク(qiita.com)
C# の Linq が python の2倍遅い、は嘘
URLリンク(qiita.com)

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

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

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

479:デフォルトの名無しさん
18/06/10 17:59:54.77 Nj3/us+lM.net
もう全部varでええやろ

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

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

482:デフォルトの名無しさん
18/06/10 18:58:38.79 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:デフォルトの名無しさん
18/06/10 19:04:29.50 FyF+mujLM.net
>>464
これはだめな例じゃないかな?
何をやってるかがわからない

485:デフォルトの名無しさん
18/06/10 19:22:31.41 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:デフォルトの名無しさん
18/06/10 19:59:10.70 7XGbwrsW0.net
これがわかんないって言うならもうlinq禁止しか無いね
そんな人間がいるプロジェクトには関わりたくないけど

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

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

489:デフォルトの名無しさん
18/06/10 20:29:40.62 FyF+mujLM.net
自分ならメソッド構文で書く

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

491:デフォルトの名無しさん
18/06/10 21:54:10.88 FyF+mujLM.net
わからないって意味を誤解してるだろ
var queryDupNames = fileList.Groupby(f=>略, f=>略).Where(g=>g.Count>1);
メソッドだとほぼ一瞬で何をやってるかわかるだろ
わざわざ行数を割いて理解に時間のかかるクエリ式を使う意味はねえよ

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

493:デフォルトの名無しさん
18/06/10 22:39:32.51 7XGbwrsW0.net
そんなんリファクタすりゃ済む話じゃん

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

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

496:デフォルトの名無しさん
18/06/10 22:54:32.29 SjjA9sVt0.net
今日も自閉症の見本市

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

498:デフォルトの名無しさん
18/06/11 14:37:15.67 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:デフォルトの名無しさん
18/06/11 17:24:57.86 FO+2sVJQ0.net
カタカナ表記する時点で英語のことなんて気にしてちゃやってられんよ

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

502:デフォルトの名無しさん
18/06/11 19:40:48.77 IrI/gpw8M.net
英語はよく知らんが 〜ing から派生して 〜 ができるとかあり得るのか?

503:デフォルトの名無しさん
18/06/11 22:30:32.76 dC6OTsii0.net
うん、そもそも refactoring が造語
初出が誰なのか不明(Martin Fowler ではない)だが、
1992年には論文で見られるっていうほんとに新しくできた単語なのよ

504:デフォルトの名無しさん
18/06/11 22:53:53.28 ziXMMRuaa.net
新しい(26年前)

505:デフォルトの名無しさん
18/06/12 11:25:19.10 XfLFdaMYp.net
接頭辞と接尾辞を付けただけだから別に造語ってほどじゃ無いだろ?

506:デフォルトの名無しさん
18/06/12 13:31:08.41 l5O6ZBmRM.net
もとの言葉がfactor、factoringで、factorは動詞としても使われているのだから、
英語圏ならrefactoringという言葉が登場した時点でrefactorという言葉も同時発生的に生まれていると思うが…

507:デフォルトの名無しさん
18/06/12 14:20:48.56 O2DKnY7ra.net
どうでもいい話だけど、派生した順番はたぶん
factor(名)→ factoring → re-factoring
なんだろう。
完全に想像で何の根拠もないけど、computingが動詞のcomputeの動名詞ではない(たぶん...)
ように、factoringも動詞のfactorの動名詞ではないような気がする

508:デフォルトの名無しさん
18/06/12 21:59:47.02 tBKs/ecm0.net
>>448
factorizeはなぜ使われなかったんだろう

509:デフォルトの名無しさん
18/06/12 23:00:33.34 KC1Yqp3NM.net
まずは英英辞書引こうよ…

510:デフォルトの名無しさん
18/06/13 07:49:48.39 GuprKmCG0.net
英英辞書ってやっぱりエイッエイッて引くのなのかな

511:デフォルトの名無しさん
18/06/13 08:29:12.19 o1Fw+zabM.net
一晩考えてそれか。。

512:デフォルトの名無しさん
18/06/13 17:13:37.26 LyYtEKg40.net
こういうやつってC#に向いてるんだろうか
URLリンク(i.imgur.com)
でもUnityとかでゲーム作りたいね思ってるのってこのタイプだろうなと思うし。

513:デフォルトの名無しさん
18/06/13 17:14:09.95 LyYtEKg40.net
これな
URLリンク(www.arealme.com)

514:デフォルトの名無しさん
18/06/13 17:20:21.24 yGCmXdsAM.net
C#より丸鋸とか旋盤の方が向いているんじゃね?

515:デフォルトの名無しさん
18/06/13 17:22:01.32 LyYtEKg40.net
3DCGはうまいけどなw

516:デフォルトの名無しさん
18/06/13 17:24:47.33 LyYtEKg40.net
図面はやってたけど、なんでもアバウトで絵をかいてるんじゃないからとかボロカス言われた。

517:デフォルトの名無しさん
18/06/13 19:08:31.55 TJmxm3LHM.net
近年、そもそも右脳左脳自体がエセ科学だったんじゃないかって言われてるけどね。
ここのサイトのconsoleって書いてあるところに自分のrwitterアカウント打ち込むと、性格にマッチした言語がわかるよ。IBM製。
URLリンク(hello-new-world.mybluemix.net)

518:デフォルトの名無しさん
18/06/13 19:10:58.93 tfOKWYs/0.net
>>491
やーごめん。このスレ今日初めて見たの。ちゃちゃいれてもうしわけなす。

519:デフォルトの名無しさん
18/06/13 23:36:14.69 AGR+xSSx0.net
>>497
IBM製じゃなくてBluemix使ったアプリなだけやん

520:デフォルトの名無しさん
18/06/14 08:07:40.99 TG8lbF0sM.net
>>499
いんや、公開したのは日本IBMだよ

521:デフォルトの名無しさん
18/06/14 12:02:14.52 ZrVl35qK0.net
自分、ブックオフで買ってきたOS無しのPCにUbuntu入れてるんですが、
Pythonとか面白いので、C#もやってみたいと思っているんですが、
Mono入れれば、書店で売ってるVisualC#の本とか出来ますか・・?

522:デフォルトの名無しさん
18/06/14 12:26:43.19 ZNAi3suja.net
C#やるなら普通にWindows機でやったほうがいいと思うけど

523:デフォルトの名無しさん
18/06/14 12:28:45.35 IAs3lrtOd.net
>>501
C#で何がしたいの?

524:デフォルトの名無しさん
18/06/14 13:05:26.16 PJ7Fj3C3a.net
左は約30年前の 稲川会 三日月一家 小原忠悦組長
URLリンク(imgur.com)

525:500
18/06/14 17:14:29.50 ZrVl35qK0.net
>>502
どうもありがとうございます。Windows機は父親のしかありません・・。強奪してこようかな・・。父親全然使っとらん。。
>>503
本のプログラムを打ち込んでみたいです。Pythonとか面白かったのでC#も挑戦してみたいという感じです。なんかいけそうっぽい

526:デフォルトの名無しさん
18/06/14 17:17:13.41 cv3CkBmoM.net
>>500
あら、そうなのか
すまんかった

527:デフォルトの名無しさん
18/06/14 17:27:33.62 im2Z0uooa.net
>>505
本がVisual Studioを使う前提で書かれていたら無理

528:デフォルトの名無しさん
18/06/14 17:59:42.71 IAs3lrtOd.net
>>505
だから具体的に何をしたいの?(何を作りたいの?)

529:デフォルトの名無しさん
18/06/14 18:14:23.58 im2Z0uooa.net
書いてある通りだろ
本を読んでその通りなぞりたいんだろ

530:デフォルトの名無しさん
18/06/14 18:19:58.04 T0JMmz9y0.net
>>507
猫でもわかるシリーズならそんな心配はないな!
>>505
お父さんのPCで間違ってエロコレクションとか見つけたら鬱になるのでやめたほうがいい
ただVisual Studio(VScodeでもいいかも)使えない環境でC#やるのはめんどくさいと思うよ

531:デフォルトの名無しさん
18/06/14 18:22:09.50 im2Z0uooa.net
猫でもわかるシリーズは今はもう古いと思う(※個人の感想です)

532:デフォルトの名無しさん
18/06/14 18:22:19.44 IAs3lrtOd.net
>>509
本によるやろそんなもん

533:デフォルトの名無しさん
18/06/14 18:23:22.66 im2Z0uooa.net
>>512
だから馬鹿な質問するのはやめとけよ

534:デフォルトの名無しさん
18/06/14 18:23:51.86 T0JMmz9y0.net
>>511
>>510はC#の本なんかまったく読んでいない無責任な個人の感想です

535:デフォルトの名無しさん
18/06/14 18:28:25.08 IAs3lrtOd.net
>>513
本によるから実際にやりたいこと聞くことの何が悪いんかい?

536:デフォルトの名無しさん
18/06/14 18:30:41.94 Cw52iYDwM.net
ここで聞くようなレベルの人が使うもんじゃないと思う ⇒ Mono

537:デフォルトの名無しさん
18/06/14 18:34:01.18 im2Z0uooa.net
初心者がc#が何かよくわからないけど本を読んでなぞって体験したい
そんな感じだろ
それ以上何がある

538:デフォルトの名無しさん
18/06/14 18:35:19.36 Cyktia16d.net
>>517
キチガイ

539:デフォルトの名無しさん
18/06/14 18:37:17.48 im2Z0uooa.net
>>518
自分がプログラム入門者だとして何がしたいと答えるつもりだ?

540:デフォルトの名無しさん
18/06/14 18:39:04.95 KqjFIT9WM.net
世界征服

541:デフォルトの名無しさん
18/06/14 18:40:09.93 Cyktia16d.net
>>519
いくらでもあるやろwww

542:デフォルトの名無しさん
18/06/14 18:42:49.17 im2Z0uooa.net
>>521
やっぱり答えられないじゃないか
pythonの本を読んでその通り打ち込んで楽しかった
次はc#だって感じだろ
何か作りたいものがあるならpythonでやるだろ

543:デフォルトの名無しさん
18/06/14 18:44:53.14 Cyktia16d.net
>>522
ありすぎてひとつに絞る意味がない
おばかさん

544:デフォルトの名無しさん
18/06/14 18:46:00.00 im2Z0uooa.net
>>523
結局答えられないくせに偉そうだな

545:デフォルトの名無しさん
18/06/14 18:47:04.68 Cyktia16d.net
>>524
ぼくとり


546:えず簡単なWebアプリがつくりたいのー



547:デフォルトの名無しさん
18/06/14 18:47:24.43 Cyktia16d.net
>>524
アンドロイドアプリモンスターズつくりたいなー

548:デフォルトの名無しさん
18/06/14 18:47:59.25 Cyktia16d.net
>>524
家計簿つくりたいー

549:デフォルトの名無しさん
18/06/14 18:48:16.72 Cyktia16d.net
>>524
テトリスつくりたいなあ

550:デフォルトの名無しさん
18/06/14 18:50:17.14 Cyktia16d.net
>>524
まだ必要?

551:デフォルトの名無しさん
18/06/14 18:50:51.62 im2Z0uooa.net
>>529
じゃあそれを質問する意味はなんだ?

552:デフォルトの名無しさん
18/06/14 18:51:45.04 T0JMmz9y0.net
両方NGでいいや

553:デフォルトの名無しさん
18/06/14 18:51:56.99 im2Z0uooa.net
>>525-528を作るための本を紹介するのか?
本をなぞると言ってるのに?

554:デフォルトの名無しさん
18/06/14 18:55:45.38 Cyktia16d.net
>>530
はいキチガイ

555:デフォルトの名無しさん
18/06/14 18:56:08.99 Cyktia16d.net
>>532
だから本によるんやろw

556:デフォルトの名無しさん
18/06/15 06:51:22.33 7Iypneqg0.net
ここまで1人の自演

557:デフォルトの名無しさん
18/06/17 07:44:22.33 R12hw8Jz0.net
.hstファイルを読み取りたいので質問です。
C#でやるのに参考になるサイトかコードはないかな?

558:デフォルトの名無しさん
18/06/17 08:44:00.21 aVMObWbK0.net
hstって何さ

559:デフォルトの名無しさん
18/06/17 09:14:51.45 R12hw8Jz0.net
HSTファイル
調べた限りだとHiSTory fileでFXの履歴を記録したファイルで使われることが多いのかな?
自分が使いたいのはFXの履歴ではないくてカメラの履歴などの情報を取りたいです。C++などのコードで書いてるサイトはあるけどC#が見つからない

560:デフォルトの名無しさん
18/06/17 10:00:34.77 aVMObWbK0.net
.hst file format . . . Old and New (Jan 2014)
URLリンク(www.mql5.com)
上のアドレスで説明されているフォーマットだったら普通にBinaryReaderで読み込めば良いんじゃないの
単純な構造だから苦労することも無いと思うよ

561:デフォルトの名無しさん
18/06/17 10:05:01.86 brTRb0Nk0.net
>>538
> C++などのコードで書いてるサイトはある
ならそれ真似ればいいだけじゃねーの?

562:デフォルトの名無しさん
18/06/17 21:31:13.88 R12hw8Jz0.net
HSTファイルもC++ほぼわからないので、参考になるのがあればと思ったんです。
BinaryReader使って試してみます。
ありがとうございました!

563:デフォルトの名無しさん
18/06/17 22:18:28.81 qGzm+MRqd.net
そのC++ライブラリはそんな複雑なことしてんの?
数千行あるなら心折れるかもしれんが、自分で移植するほうが早い気がするけど
C#かけるなら余裕でしょ

564:デフォルトの名無しさん
18/06/17 22:23:59.43 IxLGC6rAM.net
byte[]からstructにマーシャリングするのが簡単かな
あ、でも最近のC#はマルチプラットフォームだからバイトオーダーも気にしないとダメなのかな
地味にめんどくせえな

565:デフォルトの名無しさん
18/06/17 22:37:48.08 R12hw8Jz0.net
内容しっかり見てなかったけど100行なかったははず
C#もどこかあるだろで探してたけどC#だけまったく見当たらなかったので、結果的には自分で移植のほうが早かったかな

566:デフォルトの名無しさん
18/06/18 00:31:09.66 6KD+nJyx0.net
どなたか助けてください
PaSoRiでFelicaのReadをしたいのです。
winscard.dllを利用し
ScardTransmitにてADPUを送信することで
非暗号化領域のREAD/WRITEをすることはできました
追加で、暗号化領域のREADをしてほしいと言われ、
Group Service KeyとUser Service Keyという2つの鍵を渡されました。
どうやらこの2つの鍵を使って暗号化領域のREADを行うようなのですが
それに該当する情報が見つかりません。
この2つの鍵と縮退鍵の関連もわかりません。
2つの鍵を使って縮退鍵を合成する???
合成したとしてどういうAPDUコマンドを送る???
ご存知の方がいらっしゃいましたらご教授ください。

567:デフォルトの名無しさん
18/06/18 00:46:54.25 jPyv6U8B0.net
それC#の質問か?

568:デフォルトの名無しさん
18/06/18 01:05:06.10 6KD+nJyx0.net
>>546
ごめんなさい。C#で書いてるのでC#で質問しました。
他に適当なスレが見つからなかったもので。。。

569:デフォルトの名無しさん
18/06/18 14:58:19.26 Pxwa7YvH0.net
ライセンス契約の無い奴にそこから先は教えられねーわ。

570:デフォルトの名無しさん
18/06/18 15:38:53.66 XzDxjxqSM.net
バイナリファイルをバイト配列に一気に読み込んでLINQでゴリゴリするなんてC#って言うか.netの醍醐味だね。
C、C++と歩んできて正直C#なめてたが、プログラムの書き方変わったよ。

571:デフォルトの名無しさん
18/06/18 19:59:56.07 YV8aSpRw0.net
バイナリファイルのバイト配列はストリーム(BinaryReader/Writer)経由でしか扱ったことないな
浅学ですまないが非常に興味があるので、何をする処理にLINQを使っているのか教えてほしい

572:デフォルトの名無しさん
18/06/18 20:21:08.97 xPHPGLWh0.net
>>550
横レスだけど「読み込んでLINQ」だからパーサーの部分だろ

573:デフォルトの名無しさん
18/06/18 20:48:17.73 Dbb+UGxb0.net
スキップ.テイク.リバースでバイトオーダー反転してデータ取り込むとかだ。

574:デフォルトの名無しさん
18/06/18 20:55:37.17 Dbb+UGxb0.net
テキストファイルを一行ずつ読み込むとか、バイナリファイルを1フレームずつ読み込むなんてのは時代遅れなんじゃねかと。
最近は一括読み込みしかしないな。
パフォーマンスはライブラリやOSが担保してくれる。

575:デフォルトの名無しさん
18/06/18 21:33:32.15 ubyRHWyfa.net
時代遅れかどうかは知らんけど(そういうネトウヨチックな「俺スゲー」という間抜けな自己陶酔、俺は大嫌いだがw)
富豪的であってもそれが一時的(たとえばメソッドの中だけ)なら何も問題ないね。
その方がより簡潔だったり可読的に書けるなら否定する理由は何もない

576:デフォルトの名無しさん
18/06/18 21:36:42.05 C5OiN+R5M.net
webのアクセスログとかもそんな事するのけ?

577:デフォルトの名無しさん
18/06/18 21:40:28.88 ltR7ddTWM.net
時系列データのリアルタイム処理とかどうやって一括で読み込むんだ??

578:デフォルトの名無しさん
18/06/18 21:41:56.46 H/s4J3I+p.net
巨大な高速RAMストレージを特注

579:デフォルトの名無しさん
18/06/18 21:46:48.35 Dbb+UGxb0.net
時系列的に増えていくファイルだとか、ソケット通信のバイトストリートだとかは順次読み込みするしかないよ。
だけどドライブにあるファイルは一括読み込みの方が簡単だよ。1ステップだからね。それをソートするなりデータ抽出するなりLINQ使えば簡単だよ。
それを知ってから逐次読み出しなんか面倒くさくアホらしくなったよ。

580:デフォルトの名無しさん
18/06/18 21:50:28.19 Dbb+UGxb0.net
>>557
プログラム上に巨大な配列生成しても、それだけRAMに割り付けられると思うのは大間違いだよ。
メモリの階層化とかで勉強してね。

581:デフォルトの名無しさん
18/06/18 21:52:07.22 ubyRHWyfa.net
>>557には「高速RAMストレージ」って書いてあるけどw

582:デフォルトの名無しさん
18/06/18 21:52:33.25 H/s4J3I+p.net
>>559
ストレージと書いてるだろw
外部記憶装置のアクセスの高速化しか考えてねーよw

583:デフォルトの名無しさん
18/06/18 21:56:24.93 DGcX/y5w0.net
LINQのメリットの一つに IEnumerable<T>があるのになんで一括読み込みに拘るんや

584:デフォルトの名無しさん
18/06/18 21:57:36.33 C5OiN+R5M.net
痴性溢れる御意見ですね

585:デフォルトの名無しさん
18/06/18 22:00:34.70 Dbb+UGxb0.net
一括読み込みしたものがアイエニュメラブルになるから。

586:デフォルトの名無しさん
18/06/18 22:04:21.91 Dbb+UGxb0.net
>>561
最近のパソコンは速いぞ。
試しにやってみなよ。

587:デフォルトの名無しさん
18/06/18 22:08:39.81 ubyRHWyfa.net
まったく関係ないが、そういや、この手のデバイスって結局実用化せずに消えたのかね
まったく聞かないな
URLリンク(blog.livedoor.jp)
読んだのずいぶん前とは思ったがもう12年前か...

588:デフォルトの名無しさん
18/06/18 22:31:50.96 H/s4J3I+p.net



589:>>565 高速flash memoryでraid組んでもRAMの速度には負けるだろ。



590:デフォルトの名無しさん
18/06/19 23:13:11.27 BrsQYlEtM.net
>>566
PRAMのSSD版ならもう出てる
DIMMは今年度中にサンプル出荷のはず
STTやRe、Mは頑張ってるがまだ先だろうね

591:デフォルトの名無しさん
18/06/25 11:21:29.65 pxATIqrb0.net
Debug.Failのサンプルコードがこんなのなんですが
プログラムのバグでもない限りは絶対に訪れないような場所には
片っ端からDebug.Failを撒いておいたほうがいいんですか?
それともそれ専用のthrowすべき例外なりがあるんでしょうか?
Assert.Fail?
何も書かないのは気持ち悪いので指針を教えてください
switch (option) {
case Option.First:
result = 1.0;
break;
// Insert additional cases.
default:
Debug.Fail("Unknown Option " + option);
result = 1.0;
break;
}

592:デフォルトの名無しさん
18/06/25 12:12:52.11 DuFsc7dIM.net
>>569
そういうのはフロー解析による不要なコンパイルエラーを回避するために throw する
例外の種類は状況やポリシーに応じて InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException あたりを使うのが普通

593:デフォルトの名無しさん
18/06/25 12:29:34.73 Yf6/X2v7M.net
これは標準で例外欲しくなるよなぁ
いつも何を投げるか迷う

594:デフォルトの名無しさん
18/06/25 12:33:59.90 G9vuY89la.net
そうかな
>>570が挙げてくれてるので十分でしょ。
少なくともメッセージは自由に設定できるし、本当に必要なら派生もできる。
そもそも例外をそんなに細かく分類する必要が本当にあるのかちょっと疑問

595:デフォルトの名無しさん
18/06/25 12:40:32.20 M/oLTPjda.net
常識的にキャッチされない種類の例外なら何でもいいわな
InvalidOperationExceptionだけはキャッチされる場合があるから微妙だけど、慣習的にはわりと多数派な気がする
個人的には常に NotImplementedException にしたい

596:デフォルトの名無しさん
18/06/25 12:46:36.42 9dNJX3N0M.net
NotImplementedは使わないなぁ

597:デフォルトの名無しさん
18/06/25 12:58:28.80 G9vuY89la.net
NotImplementedException は↓の人の意見だと本当は実装すべきなのに何かの都合でまだ
未実装の場合に使うらしいね。正しいかどうかは知らない
URLリンク(yfakariya.blogspot.com)
同じNotでもNotImplementedは「未」実装、NotSupportedは「非」サポートってのは分かりづらいっす

598:デフォルトの名無しさん
18/06/25 13:00:29.11 5ya7SPIm0.net
細かいけどコンパイルエラー回避のためにthrowする、ってのは違くない?
現実問題そんな感じになってしまうことはあるけど理想はコンパイラの都合に合わせたコードなんて無いほうがいいんだから

599:568
18/06/25 13:23:21.50 vUyRGEqk0.net
>>570
>InvalidOperationException, NotSupportedException, ArgumentException, NotImplementedException
これらの例外は自クラスには非はなく、呼んだ側の使い方が間違っているといった感じの例外に見えますが
そんなにこだわらなくていいんでしょうか
public class MyClass
{
public class BugException: System.SystemException{}
public void buggedmethod() { ... throw new


600:BugException(); } } これで良ければ1行で定義できて1番明快に思えますが 検索してもこんなことをやってる人は誰もいないっぽい…



601:デフォルトの名無しさん
18/06/25 14:49:07.56 o35Q9ijAM.net
>>575
>>569のケースに限れば、defaultに来るのはenumにメンバを追加したのにcaseを追加していない「変更漏れ」であると考えることもできるから、
NotImplementedException でも意味的におかしくはない
NotSupportedExceptionは(継承の都合で)メンバ自体が使えないことを意味するからちょっと違う

602:デフォルトの名無しさん
18/06/25 18:07:26.16 dM1+XD4cM.net
MissingCaseException
を自作でいいのでは?

603:デフォルトの名無しさん
18/06/25 18:51:31.43 uZsljbpsa.net
>>578
なるほどそうかも
関係ないけど、いつも思うけどあるインターフェイスを継承してるのに
そのインターフェイスのメソッド使ったらNotSupportedExceptionが飛んでくるって設計は
なんか不条理を感じるのは俺だけかなあw
インターフェイスって契約じゃなかったのかよw

604:デフォルトの名無しさん
18/06/25 19:32:38.95 gMkOZD8Wa.net
InvalidEnumArgumentExceptionは?

605:デフォルトの名無しさん
18/06/25 19:39:55.82 gMkOZD8Wa.net
実装側の問題なら>>578でよさそう

606:デフォルトの名無しさん
18/06/25 20:13:43.81 HTnjHonAM.net
>>570が挙げてる例外は各々意味あるから>>569のとはちょっと違う気がする
AssertExceptionとかLogicErrorExceptionとかが欲しい

607:デフォルトの名無しさん
18/06/25 21:43:12.62 xJKhLBIA0.net
Debugクラスのメソッドはリリース版のとき消えます、素通りします
Debug.Fail() は起こりえない状況であり、かつ、素通りしても問題ない箇所、
またはリカバリ処理を行っている箇所にしか使用できません
基本は例外か Trace.Fail() を使用するべきです
Debug.Fail() を使用して問題ないのは具体的には下記の条件に当てはまるときぐらいだと思います
・『絶対』に起こらないことを目視や単体テストで確認した上で、後続のコードでリカバリ処理を行っている箇所で、
開発によってコードが壊れてないかチェックするためにコードに挿入する
(絶対に発生しないので単体テストを行う場合は #if で慎重にコードを切り替えてエラー状態を再現することになります)
つまり、リカバリ処理してるなら Debug.Fail() は入れなくても問題ないはずです


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

288日前に更新/268 KB
担当:undef