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


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

ふらっと C#,C♯,C#(初心者用) Part153



1 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:53:21.18 ID:dhjmiKBp0.net]
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part152
mevius.5ch.net/test/read.cgi/tech/1629888256/
■関連スレ
C#, C♯, C#相談室 Part94
mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

360 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 17:04:00.85 ID:BWSRqAyGM.net]
>>350
ネイティブ呼び始めたら嫌でもチェックせんか?
タグ付きユニオンとか使い始めたらどうせそうなるし。

361 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 17:29:19.72 ID:XgG7cDH40.net]
なんだ動的型付け言語が嫌いなだけか

362 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 17:41:00.66 ID:h9ISFI6AM.net]
>>356
全く意味合いが異なる

363 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 17:42:21.35 ID:h9ISFI6AM.net]
>>357
本来バリデーションが必要がないところでバリデーションが必要になることが大問題

364 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 18:00:52.01 ID:v2mo/5h3a.net]
それはバリデーションじゃなくてバグのチェックだねw

365 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 18:24:36.74 ID:h9ISFI6AM.net]
そだね
TypeScriptdではそういうことも必要になってくる
言語上の欠陥なんだけどランタイムがJSだから永遠に解決しないだろうなこれ

366 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 18:24:37.24 ID:rkCZbU1/0.net]
>間違える余地が在ることが問題

完全無欠な言語以外は認められないと?

>型Aと書いたものが実際にはAでないという可能性が生じた時点であらゆるコードが信頼性を失い

どういう場合にそのようなことが起きるかがわかってないんだろうね。結局使いこなしの問題。

367 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 18:27:22.35 ID:h9ISFI6AM.net]
>>363
完全無欠な言語しか使わないとまでは言わない
ただ大きな欠陥のある言語は使いたくない
感覚としてはその程度だね

どういう場合に起こるか?
それはあらゆる場面で起こりうる
ライブラリすら信用できない

368 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 20:53:29.42 ID:f9obKWjH0.net]
>>360
本来バリデーションは必要なのに必要じゃないと思い込んでるだけだろ。
カナリア置いたりした経験無さそう。



369 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 20:55:06.78 ID:f9obKWjH0.net]
>>364
あるゆるは言い過ぎでは?
ほとんどの場合信頼境界を越えるからかと。

370 名前:デフォルトの名無しさん [2022/01/04(火) 21:33:12.76 ID:e29mAngZa.net]
formsのchartを使ってるんだけど、20系列くらいを100ms以下でリアルタイム更新って厳しいのかな
色々試したけど更新にどうしても時間がかかる。。

371 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 21:37:51.18 ID:I8DXoUzs0.net]
>>365
c♯においてdatetime型の変数の中身がdatetime型以外である可能性があるの?
本来必要なバリデーションって何よ?

372 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 21:44:14.34 ID:rkCZbU1/0.net]
>>364
Cのポインタだって使い方を間違えたら正しい型を示さないことになるし、C自身も安全でない言語と見做される
こともあるが、それを分かったうえで正しく使う人はいるし実際広く使われている。そういうこと。

373 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 21:58:28.71 ID:f9obKWjH0.net]
>>368
外部のAPIで1899年以前を扱いうる場合。

374 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 22:45:31.35 ID:mTPUUbcD0.net]
>>367
サードパーティ製のチャートを探すことをお勧め
詳しくないから具体的な名前は特に挙げられないけど
とりあえずScottPlotって名前を最近見かけたので試してみては
しかし20系列もあると読みづらそうだな

375 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 22:57:39.12 ID:xZMfmUxua.net]
>>367
ただの折れ線グラフとかでビジュアル的に凝る必要がなければ
UserConrolから自分で作った方が早いかもね。

昔散々そういうのやってたけど、やってみると案外簡単だ。
WPFを選択するとパフォーマンス問題にぶち当たるから注意。

376 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:04:51.13 ID:hJBi5qqI0.net]
おすすめ本あります?
アマゾンで独習を見たのですが第4版は不評、第3版おすすめとなってたんですが
2010年出版っというのが引っかかっているので他を探しています。

スキルはPythonでPyGameのサンプルを打ち込みつつ、解説を見て勉強してるレベルです。
その他言語の経験はなし!

377 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:13:01.18 ID:0nFT+Tq8M.net]
>>365
違う
本来バリデーションは必要ないのにTSでは(というか型がゆるゆるのスクリプト言語全般だが)余計なバリデーションが必要ということ

string x = func();
と書いた時にC#ではxが本当に文字列であることを検証する必要はない
nullになっていないか、文字列が特定の書式を満たしているか、といった心配はあるだろう
しかし、xにintが入ってる可能性は考慮する必要はない

TSではxにnumberが入っているかも、という可能性を考慮しなければならない
これが本来やらなくていいはずのバリデーションだ
これは型が嘘をつくから起こりうること
TSの代表的な欠陥の1つだ

378 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:14:48.44 ID:0nFT+Tq8M.net]
>>369
詭弁
話を逸らすな



379 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:19:57.46 ID:Oz0E0ZFa0.net]
var x = func();
var y = x.func();
型が分からないとイライラくるよね。
スルーできる奴の脳みそってそ

380 名前:れをすべて妄想で埋めてることが社会実験で実証された。 []
[ここ壊れてます]

381 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:20:34.56 ID:rkCZbU1/0.net]
>型が嘘をつく

この言い回しをよっぽど気に入っているようだけどw当然TypeScriptが勝手に嘘をつくわけはなくて、
嘘をつかせたのはそれを使うプログラマ自身だわな

382 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:24:23.97 ID:Hrzc5R7N0.net]
>>376
それはメソッド名が糞なだけだよ

383 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:30:10.65 ID:r+SDF27Td.net]
わざわざ宣言した行まで戻って型確認するのか

384 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:30:19.98 ID:QHt6N4Fh0.net]
相変わらずコードが読めてもテンプレ読めない人が多いな

385 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:36:38.21 ID:0nFT+Tq8M.net]
>>377
TSが勝手に嘘をつくことはないがC#と比べて嘘をつかせるように導くのに長けている
プログラマは世界中に沢山いてTSを使うと漏れなくその脅威に晒される
また彼らが作成したライブラリにも嘘が潜んでいるかもしれない

386 名前:デフォルトの名無しさん mailto:sage [2022/01/04(火) 23:58:26.60 ID:f9obKWjH0.net]
>>374
違わないよ。
全てTSの中であればNumberであることが担保されているのは、全てC#の中である場合と同程度に正しい。
C#の場合でも信頼境界を越えるのであればその可能性は考慮しないといけないし、TSの場合でも信頼境界を越えないのであれば気にする必要は無い。
ましてやTSというかJSはシングルスレッドなので別スレッドに壊される事も無い。

387 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 00:01:01.66 ID:fuEg19Cq0.net]
>>381
お前信頼境界って言葉一切ググらずに喋ってるだろ。
言われたことぐらい理解して反論してこいよ。

388 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 00:50:54.28 ID:JsfvM5KJM.net]
>>382
全てTSでも型が保証されない
最も簡単な事例は
const x: string = 100 as any
もちろんこんなコードを書く人はいないが
複雑で膨大なアプリケーションコードを扱うプロジェクトのなかで誰一人としてミスをしないかというと
そんな保証は全くなく型に嘘をつかれることになるだろう



389 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 00:51:02.44 ID: ]
[ここ壊れてます]

390 名前:JsfvM5KJM.net mailto: >>383
ブーメラン
[]
[ここ壊れてます]

391 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 00:56:20.83 ID:fuEg19Cq0.net]
>>384
それはC#でも同じでしょ。

392 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 00:59:38.17 ID:JsfvM5KJM.net]
C#ではI/Oが生じる場合にも型が嘘をつくことはない
例えばこうだ

int x = Parse<int>(inputStream);

パースエラーにより実行時に例外が発生することはある
それはどの言語でも起こりうることだ
しかし、依然としてxにstringが入ったり、DateTimeが入ったり、という、TSでは普通にあり得る悍ましい挙動を示すことは無いのだ
なぜならC#はTSと違って型が嘘をつかないから
C#の型は信頼できる
TSの型は嘘つきで信頼できない

393 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 01:00:08.39 ID:fuEg19Cq0.net]
>>384
大規模アプリ開発では、何層もの見えない層があった結果これが起こる。
オブジェクトの型を破壊的に変換 - C#と諸々」でググってみ。

394 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 01:00:59.54 ID:fuEg19Cq0.net]
>>387
じゃあTSはどうしてxにStringやなにがしかが入るの?どこで入れてんのよ?w

395 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 01:10:21.43 ID:JsfvM5KJM.net]
>>386
全く異なる
C#ではdynamic、リフレクション、コード生成を使えばコンパイラの検証を回避して、間違った型の変数に値を設定できる
しかし、C#でこれをやると実行時にエラーになるのだ
TSで何事もなく処理が進むのとは、全く趣が異なる
そう、TSではstringと指定した筈の変数にnumberやDateの変数が入ったまま、何事もなく進んでしまうのだ
これは本当に恐ろしい挙動だ
つまり、バグを仕込んだところから、しばらく処理が進んだところで被害が顕現する、ということだ
これはまるで、潜伏期間の長いコロナウイルスのように厄介な特性だ
この挙動はC言語などではよくあるものだったが、原因と結果が離れているのでデバッグがしにくい、とのことで先人達は大いに苦しめられたものだ
まがりなりにも後発の言語であるTSが、大昔の言語設計と同じ失敗を繰り返しているのは残念でならない

396 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 01:17:22.12 ID:JsfvM5KJM.net]
>>388
低レベルなメモリアクセスでランタイムを破壊できるのはどの言語でも当たり前のことだろう
TSのように低レベルメモリアクセスでもなんでもない、ただの代入で型安全を破壊できるようなものと同列に扱うべきではない

397 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 01:19:07.95 ID:JsfvM5KJM.net]
>>389
困ったことにTSではどこででも起こりうる
だから欠陥言語なんだよ
C#のように低レベルメモリアクセスで無理やり破壊すればできるよ、といった次元とはわけがちがう

398 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 01:46:29.20 ID:lnjYKBBj0.net]
>>379
varの上にマウスカーソル合わせてツールチップに表示される型を見るだけ



399 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 07:33:07.78 ID:OXnyWrYu0.net]
>>384
既に>>349で挙げているがそこに注意してプログラミングすればいいだけ。
お前は馬鹿だからそれができないんだろうが世の中の人間がみなお前と同じように馬鹿なわけではない。

400 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 07:38:49.44 ID:t5pkfnoc0.net]
JSなんて使いたくて使ってるやつはいないって事だよ
ほかに選択肢がないから仕方なく使ってるだけで

そもそも本来TSのようなトランスパイラはこの世に存在し得ない存在

401 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 09:23:21.76 ID:bvaGXVet0.net]
なんでc#スレで一生懸命TSの悪口言ってるの?

402 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 09:53:21.58 ID:SNzZltS0M.net]
欠陥指摘できる俺すげー君だろw
スルーしとけ

403 名前:デフォルトの名無しさん [2022/01/05(水) 09:57:56.22 ID:5ORhcVX2D.net]
WinFormのlistViewをタブレットで使いたいのですがlist部分を指で上下してlistをスクロールする事は出来るでしょうか
スクロールバーで上下出来るのですがスマホのように出来ないかなと

404 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) ]
[ここ壊れてます]

405 名前:10:15:33.57 ID:Zzh6nSy3M.net mailto: >>394
挙げられたリストでは全く足りない
こういう認識の甘さがバグを仕込むキッカケになるのだろう
そもそも人間は間違える余地があれば、いつか必ず間違える
注意してれば大丈夫、などという考え方では到底ダメだ
[]
[ここ壊れてます]

406 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 10:17:21.15 ID:Zzh6nSy3M.net]
>>396
しつこく返してくる奴がいるから仕方なく付き合ってやってる
そいつがTSの型は安全でないという当たり前の事実を素直に受け入れれば俺もこんなレスバしなくても済むんだが

407 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 10:34:58.47 ID:TbL+VltAd.net]
TypeScriptなしではJS開発やってられなくなってしまったな
特にチーム開発

408 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 11:00:24.24 ID:dUhlmVC50.net]
>>398
一応標準でサポートされてるはずだけど
なんかスクロール遅いし慣性の扱いが下手糞だけど…



409 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 11:06:50.05 ID:llHLsWPPp.net]
>>400
おまえは相手がうんと言うまでスレチ議論続けるつもりか

410 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 11:43:03.34 ID:93Qk8F8ua.net]
例えばリストビューを作るときにアイテムのTagに日時を代入しとく
そうしたら選択したアイテムの日時がすぐにわかるから。こんなのはよくやる手法だよね

で、実際にアイテムがクリックされたときにTagを読んで日時を取得しようとしたらstringだったりDateTimeだったりして型エラー。バリデーションwが必要になる
こんなの(アホがプログラミングしたら)c#でも日常茶飯事だからな
tsでも同じ。アホがプログラミングしたらバリデーションwは必須だし、普通にプログラミングしたら不要

411 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 11:54:44.06 ID:ZRZErZAVM.net]
>>404
君は議論の焦点を全く理解してないようだね

412 名前:デフォルトの名無しさん [2022/01/05(水) 12:07:48.08 ID:2gwkfiFL0.net]
すまんが、昔、Linux + LLDBでのC#のデバッグ方法が公式サイトに書かれていたようが気がするんだけどさ
そんなようなページってどこにあるのか、誰か知ってたら教えて!!!

413 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 14:47:28.15 ID:kRupjksVa.net]
昔OSも乗ってない小規模組み込みをアセンブリでずっと書いてたけど、
アセンブリには当然型なんて概念そのものが存在しないが、
だからintとBCDを間違えたり、構造体のポインタを別の構造体のポインタと勘違いする
ミスが多いかと言うと、そこは意外とそうでもなかったりする。
それより生産性に対する影響の方が大きい印象だね。

まあこれは小規模かつ基本1人の開発だったからそうだっただけで、大規模かつチーム開発だと
話が変わってくるのかもしれない。
この辺はゲーム業界の人が詳しそうだね。
あの世界は下手したら90年代の終わり頃までアセンブリでやってたはず

414 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 15:04:40.06 ID:XpPjLRYm0.net]
バグには様々な要因があるから、不正な型が代入された場合だけを過度に心配してもね

415 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 15:08:39.22 ID:C1Xb8B3u0.net]
型を気にしない馬鹿はテストも当然にしないから

416 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 15:14:15.12 ID:ROW6egx4d.net]
>>384
自分が守らなければそりゃ保証もされないだろ。
C#ならある型にはある値しか入らないと思ってそう。

例えば構造体につっこんでFieldOffsetで上書きすればあっさり壊れるぞ。

[StructLayout(LayoutKind.Explicit)]
struct XXX {
 [FieldOffset(0)] public DateTime Value;
 [FieldOffset(0)] public ushort Tag;
}

でXXX.Tagに適当なもの入れ

417 名前:スらValueは無茶苦茶になる。 []
[ここ壊れてます]

418 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 15:54:13.43 ID:qaVNdYDmM.net]
参照型の変数にnullが入ってるかもしれないし、C#の場合は例外の型もドキュメントの記載を信じるしかないよね
結局は程度問題なんだよ
前者のnullの問題についてはnull許容参照型を使えば型として区別できるけど、null非許容だからといって絶対にnullが入らないわけではなく簡単にnullを混入させることができる
彼の大嫌いなTSと同じく、特にランタイムチェックのない紳士協定だ



419 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 16:24:00.16 ID:kRupjksVa.net]
っていうかこれたしか元はvarの話だよね。
繰り返しになるけど、元々の問題提起、つまり
「右辺の型が推測しづらいケースでもvarを使うのは不適切じゃないのか?」は正しいよ完全にw

匿名型を受ける場合以外のvarの目的は、「見れば分かる」冗長な繰り返しを避けて
シンプルにすること。

「かっこ悪い」みたいな中二病的動機で意地でも型を明示しないことに固執する奴はアホだが、
困ったことに現実にはそういうアホが結構いる。

この辺LINQの乱用が嫌われるのと同じなんだろうねw
シンプルにするための道具を使ってわざわざ難解にするバカw
たぶん彼はシンプルとは文字数が少ないことだと倒錯している

420 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:12:39.57 ID:x9hFTlB3d.net]
varの型が分からん分からんってこいつメモ帳で開発してんのか?

421 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:24:59.67 ID:5TZJeeZKa.net]
IDEだけでしかソース見ない奴は問題ないんだよ
ぐぐってブラウザ上で見るソースなんてマウスあてても型表示してくれないからな

422 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:28:23.80 ID:C1Xb8B3u0.net]
どんだけ小さなプロジェクトしか関わったことないのか知らないが
code reviewするときに数百、数千というvarをおまえはいちいちマウス乗せてチェックしてるのか?

型を気にしないならオープンソースもコードを確認せずビルドして使うタイプだろう。
OSS品質=誰かがチェックしてくれるはず=テストしてない=今のMSのコード品質

423 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:32:31.52 ID:5TZJeeZKa.net]
var使ってるぐらいで崩壊するようなとこは大きいの作れないから気にする必要ないよw

424 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:43:11.47 ID:t5pkfnoc0.net]
varなんて大抵は右辺見たら型わかるやろ?
何が分からんのだ?

425 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:48:48.78 ID:C1Xb8B3u0.net]
実験結果は分かった気になって実は全然分かってないでした。
でも分かった気になってるのでいつまでもなぜ分からないのだ?と問い続ける。

426 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:52:58.23 ID:t5pkfnoc0.net]
いやマジで何が分からんの?アホの子なの?

427 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:58:12.21 ID:bWjicXEh0.net]
つか、変数名見ればクラス名も分かる程度にしておくのが普通だから
マウスで調べなくてもだいたい分かる

428 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 17:58:55.28 ID:C1Xb8B3u0.net]
自演じゃないよ、彼はそう信じてるんだ。笑わないでほしい。



429 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 18:09:44.71 ID:R56PdZ5+0.net]
>>421
このスレの住人はお前のことを笑っているぞ

430 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 18:09:55.54 ID:t5pkfnoc0.net]
staticおじさんみたいなもんだな

431 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 18:21:06.82 ID:C1Xb8B3u0.net]
そして彼は笑いながら未テスト納品を繰り返す。そしてまたスパコンのデータを吹き飛ばす。

432 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 18:39:16.92 ID:w42D9Ab/0.net]
コードレビュー時にローカル変数の型をいちいち調べる意味がよくわからん
必要になるのってバグの原因調査する時だけでしょ

433 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 18:41:30.05 ID:jje+EFiu0.net]
TS、JSの型がゴミなのはわかる
c#のvarも俺は嫌い
普通に読みにくい

最近は派遣先会社のVSに仕込まれた強制変換スクリプト?で保存すると勝手にvarが明示的な型に置き換えられて
久しく見ない問題だったが

434 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 18:42:19.84 ID:C1Xb8B3u0.net]
何も知らないなら喋らなきゃ無知はバレない。

435 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 19:07:10.79 ID:5TZJeeZKa.net]
>>425
人のソース読むのにvarで省略されてるよりも、型が使われてる方が理解しやすい
もちろん>>420のようにしてくれればvarでも変わりゃしないけど、世の中そういうソースばかりじゃないし酷いのになると名前で型を騙されることあるからな
整数型にn、floatにfついてるからdがついてたらdoubleかと思ったらそれも整数だったり。そりゃないだろ・・・

436 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 19:19:51.10 ID:fuEg19Cq0.net]
限度の問題では?
MSの規約にあわせれば良いでしょ。
IEnumerable<T>で受けるべきなのにList<T>で受けてるとかそういう不適切な状態になってない限りvarで良いと思うけどな。
varは省略の為に使うのではなくて推論の為に使うんよ。

437 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 19:53:56.06 ID:jje+EFiu0.net]
varなんて右クリックメニューで元に戻せるから書くだけ書いたら明示的な記述に直しちゃった方がいいよ

438 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 19:57:59.86 ID:kRupjksVa.net]
>>429
推論はするよりしない方が脳への負担が低いはずなので、
君の説を採るとvarは全面禁止すべきという結論になってしまうよw

少なくともコードの読み手(書き手ではなく)にとってのvarのメリットは
右辺の型が分かりきっている時に左辺の方でもくどくどそれを繰り返される冗長さが回避されることだ。



439 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 20:04:49.66 ID:lXYh5E9eM.net]
型推論
https://ja.wikipedia.org/wiki/%E5%9E%8B%E6%8E%A8%E8%AB%96

440 名前:デフォルトの名無しさん [2022/01/05(水) 20:09:49.34 ID:34fypwCFM.net]
書くやつは楽
コピペ盗作するやつは脳味噌が必要

var大勝利じゃん

441 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 20:11:27.06 ID:jje+EFiu0.net]
>>432
そもそもこれがゴミなのか有効なのか?
って議論がなされないまま突然導入されてほら使えだからな
VSの右クリックメニューにもvarを元に戻す機能が付いたってことはあんまり評判よくないだろコレ

442 名前:デフォルトの名無しさん [2022/01/05(水) 20:16:51.17 ID:eampx4mf0.net]
議論に参加できるぐらい出世しろ

443 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 20:20:48.72 ID:jje+EFiu0.net]
>>435
お前の会社は社長が1番技術力高いのか?

444 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 20:41:21.39 ID:P9kF/5N50.net]
varで推論しないほうが脳への負担が低いというのはどういうことですか?

445 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 20:42:40.80 ID:C1Xb8B3u0.net]
>>437
型が分からなくてもイライラしない人はそもそも負担がありません。

446 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 21:00:44.67 ID:jje+EFiu0.net]
アホが作った無意味なマトリョーシカクラス追わなくて済むからな

447 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 21:16:57.60 ID:w42D9Ab/0.net]
15年近く前から導入されてるものに対して
いまだに文句を言い続ける「熱量」には感心する

448 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 21:20:57.24 ID:jje+EFiu0.net]
>>440
正直、クラスから嫌いです
構造体以上のメリットを全く感じたことない



449 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 21:56:49.45 ID:LjEcMnXra.net]
>>441
そこは「しっくりこないんです」、と書いて欲しかったw

450 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 22:09:26.64 ID:R56PdZ5+0.net]
staticおじさん生きてたのかw

451 名前:デフォルトの名無しさん [2022/01/05(水) 23:32:21.89 ID:9KUuQ3bM0.net]
わかってる奴がvar使うのはOK
馬鹿がvar使うのはNG

452 名前:デフォルトの名無しさん mailto:sage [2022/01/05(水) 23:33:33.69 ID:HyMzvNe00.net]
じゃあdynamicつかうね

453 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 02:10:11.97 ID:jegOl+WX0.net]
>>431
推論させる方が脳への負担は低いよね?

型がわからなくてイライラすると言うけど、解る必要ある部分ではないのでは?
極端な

454 名前:bメソッドの入口と出口は型が決まってんだから。 []
[ここ壊れてます]

455 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 02:36:29.67 ID:Vr7+jyV40.net]
そのメソッド追っ掛けるのが面倒だって話ではないのか

456 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 02:50:36.77 ID:ChZ1cCgVa.net]
>>446
推論の主語が変わってるよw
あなたの言ってる推論の主はコンパイラ(開発環境)だよね?w

ついでに言うと、あなたがたぶん言いたいことは「書く時の負担が減らせる」ということ。
だからそうじゃなくてコードの読み手にとってのメリットが重要なのよw
そう書いてるよね?>>431

だってそうでしょ。
コードを書いてる時の書き手にとってはどの変数がどの型かなんて
当然自明なんだからvarにはメリットしかないよ。そんなの当たり前でしょw

結局varについても意見が割れるのは前にも書いた(>255)こういう意識の差があるからだろうね。
世の中KISSなんてただのお題目だと思っててなぜ重要か体感レベルで実感できない人が結構いる。

457 名前:デフォルトの名無しさん [2022/01/06(木) 03:46:43.08 ID:Jy6L3sVt0.net]
>>448
>コードを書いてる時の書き手にとってはどの変数がどの型かなんて当然自明なんだから

馬鹿はvarを使えばエラーが出ないという理由でvarを使っているだけで型なんか理解もしとらんのだよ

458 名前:デフォルトの名無しさん [2022/01/06(木) 06:07:27.91 ID:WSidiaMA0.net]
>>449
その発想はなかったわ
バカの考えは馬鹿にしかわからないのだな



459 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 08:30:02.04 ID:GGuE86Bnd.net]
>>448
違うよ。
コードの書き手も読み手も楽が出来る。
varで宣言されている変数に関しては、推論を行わせて、自動的に型が決まっていても良い、というシンプルな話。

Task<IQueryable<Bar>> foo()
{
 var masters=getMasters();
 //なんかmastersを使った処理
 // :
 var predictate= e=> ... ;//変換したmastersを使った関数
IQueryable<Bar> result = xxxx.Where(predicate).Take(10);
 //resultの確認
 return result;
}
こんながあったとき、predictateとmastersはvarで充分では?

460 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 09:18:51.63 ID:BMV6DlOj0.net]
全く論点が不明
コードレビューでは全てのvar変数をマウスオーバーして型を確認しなければならないと言うのもシチュエーションとして理解不能、猿が働いてる企業なのか?

そもそもそんな使用の是非の議論が必要な話なら世の中にvar禁止の組織はさぞかしあるんだろ?
御託並べる前にgithubでvar禁止にしてるC#プロジェクトでも持ってこいよw






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

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

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