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

■ このスレッドは過去ログ倉庫に格納されています
2021/12/13(月) 22:53:21.18ID:dhjmiKBp0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part152
http://mevius.5ch.net/test/read.cgi/tech/1629888256/
■関連スレ
C#, C♯, C#相談室 Part94
http://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
2022/01/05(水) 11:54:44.06ID:ZRZErZAVM
>>404
君は議論の焦点を全く理解してないようだね
406デフォルトの名無しさん (ワッチョイ aebb-dPEu)
垢版 |
2022/01/05(水) 12:07:48.08ID:2gwkfiFL0
すまんが、昔、Linux + LLDBでのC#のデバッグ方法が公式サイトに書かれていたようが気がするんだけどさ
そんなようなページってどこにあるのか、誰か知ってたら教えて!!!
2022/01/05(水) 14:47:28.15ID:kRupjksVa
昔OSも乗ってない小規模組み込みをアセンブリでずっと書いてたけど、
アセンブリには当然型なんて概念そのものが存在しないが、
だからintとBCDを間違えたり、構造体のポインタを別の構造体のポインタと勘違いする
ミスが多いかと言うと、そこは意外とそうでもなかったりする。
それより生産性に対する影響の方が大きい印象だね。

まあこれは小規模かつ基本1人の開発だったからそうだっただけで、大規模かつチーム開発だと
話が変わってくるのかもしれない。
この辺はゲーム業界の人が詳しそうだね。
あの世界は下手したら90年代の終わり頃までアセンブリでやってたはず
2022/01/05(水) 15:04:40.06ID:XpPjLRYm0
バグには様々な要因があるから、不正な型が代入された場合だけを過度に心配してもね
2022/01/05(水) 15:08:39.22ID:C1Xb8B3u0
型を気にしない馬鹿はテストも当然にしないから
2022/01/05(水) 15:14:15.12ID:ROW6egx4d
>>384
自分が守らなければそりゃ保証もされないだろ。
C#ならある型にはある値しか入らないと思ってそう。

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

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

でXXX.Tagに適当なもの入れたらValueは無茶苦茶になる。
2022/01/05(水) 15:54:13.43ID:qaVNdYDmM
参照型の変数にnullが入ってるかもしれないし、C#の場合は例外の型もドキュメントの記載を信じるしかないよね
結局は程度問題なんだよ
前者のnullの問題についてはnull許容参照型を使えば型として区別できるけど、null非許容だからといって絶対にnullが入らないわけではなく簡単にnullを混入させることができる
彼の大嫌いなTSと同じく、特にランタイムチェックのない紳士協定だ
2022/01/05(水) 16:24:00.16ID:kRupjksVa
っていうかこれたしか元はvarの話だよね。
繰り返しになるけど、元々の問題提起、つまり
「右辺の型が推測しづらいケースでもvarを使うのは不適切じゃないのか?」は正しいよ完全にw

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

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

この辺LINQの乱用が嫌われるのと同じなんだろうねw
シンプルにするための道具を使ってわざわざ難解にするバカw
たぶん彼はシンプルとは文字数が少ないことだと倒錯している
2022/01/05(水) 17:12:39.57ID:x9hFTlB3d
varの型が分からん分からんってこいつメモ帳で開発してんのか?
2022/01/05(水) 17:24:59.67ID:5TZJeeZKa
IDEだけでしかソース見ない奴は問題ないんだよ
ぐぐってブラウザ上で見るソースなんてマウスあてても型表示してくれないからな
2022/01/05(水) 17:28:23.80ID:C1Xb8B3u0
どんだけ小さなプロジェクトしか関わったことないのか知らないが
code reviewするときに数百、数千というvarをおまえはいちいちマウス乗せてチェックしてるのか?

型を気にしないならオープンソースもコードを確認せずビルドして使うタイプだろう。
OSS品質=誰かがチェックしてくれるはず=テストしてない=今のMSのコード品質
2022/01/05(水) 17:32:31.52ID:5TZJeeZKa
var使ってるぐらいで崩壊するようなとこは大きいの作れないから気にする必要ないよw
2022/01/05(水) 17:43:11.47ID:t5pkfnoc0
varなんて大抵は右辺見たら型わかるやろ?
何が分からんのだ?
2022/01/05(水) 17:48:48.78ID:C1Xb8B3u0
実験結果は分かった気になって実は全然分かってないでした。
でも分かった気になってるのでいつまでもなぜ分からないのだ?と問い続ける。
2022/01/05(水) 17:52:58.23ID:t5pkfnoc0
いやマジで何が分からんの?アホの子なの?
2022/01/05(水) 17:58:12.21ID:bWjicXEh0
つか、変数名見ればクラス名も分かる程度にしておくのが普通だから
マウスで調べなくてもだいたい分かる
2022/01/05(水) 17:58:55.28ID:C1Xb8B3u0
自演じゃないよ、彼はそう信じてるんだ。笑わないでほしい。
2022/01/05(水) 18:09:44.71ID:R56PdZ5+0
>>421
このスレの住人はお前のことを笑っているぞ
2022/01/05(水) 18:09:55.54ID:t5pkfnoc0
staticおじさんみたいなもんだな
2022/01/05(水) 18:21:06.82ID:C1Xb8B3u0
そして彼は笑いながら未テスト納品を繰り返す。そしてまたスパコンのデータを吹き飛ばす。
2022/01/05(水) 18:39:16.92ID:w42D9Ab/0
コードレビュー時にローカル変数の型をいちいち調べる意味がよくわからん
必要になるのってバグの原因調査する時だけでしょ
2022/01/05(水) 18:41:30.05ID:jje+EFiu0
TS、JSの型がゴミなのはわかる
c#のvarも俺は嫌い
普通に読みにくい

最近は派遣先会社のVSに仕込まれた強制変換スクリプト?で保存すると勝手にvarが明示的な型に置き換えられて
久しく見ない問題だったが
2022/01/05(水) 18:42:19.84ID:C1Xb8B3u0
何も知らないなら喋らなきゃ無知はバレない。
2022/01/05(水) 19:07:10.79ID:5TZJeeZKa
>>425
人のソース読むのにvarで省略されてるよりも、型が使われてる方が理解しやすい
もちろん>>420のようにしてくれればvarでも変わりゃしないけど、世の中そういうソースばかりじゃないし酷いのになると名前で型を騙されることあるからな
整数型にn、floatにfついてるからdがついてたらdoubleかと思ったらそれも整数だったり。そりゃないだろ・・・
2022/01/05(水) 19:19:51.10ID:fuEg19Cq0
限度の問題では?
MSの規約にあわせれば良いでしょ。
IEnumerable<T>で受けるべきなのにList<T>で受けてるとかそういう不適切な状態になってない限りvarで良いと思うけどな。
varは省略の為に使うのではなくて推論の為に使うんよ。
2022/01/05(水) 19:53:56.06ID:jje+EFiu0
varなんて右クリックメニューで元に戻せるから書くだけ書いたら明示的な記述に直しちゃった方がいいよ
2022/01/05(水) 19:57:59.86ID:kRupjksVa
>>429
推論はするよりしない方が脳への負担が低いはずなので、
君の説を採るとvarは全面禁止すべきという結論になってしまうよw

少なくともコードの読み手(書き手ではなく)にとってのvarのメリットは
右辺の型が分かりきっている時に左辺の方でもくどくどそれを繰り返される冗長さが回避されることだ。
2022/01/05(水) 20:04:49.66ID:lXYh5E9eM
型推論
https://ja.wikipedia.org/wiki/%E5%9E%8B%E6%8E%A8%E8%AB%96
433デフォルトの名無しさん (ラクッペペ MM26-X9o+)
垢版 |
2022/01/05(水) 20:09:49.34ID:34fypwCFM
書くやつは楽
コピペ盗作するやつは脳味噌が必要

var大勝利じゃん
2022/01/05(水) 20:11:27.06ID:jje+EFiu0
>>432
そもそもこれがゴミなのか有効なのか?
って議論がなされないまま突然導入されてほら使えだからな
VSの右クリックメニューにもvarを元に戻す機能が付いたってことはあんまり評判よくないだろコレ
435デフォルトの名無しさん (ワッチョイ ade6-X9o+)
垢版 |
2022/01/05(水) 20:16:51.17ID:eampx4mf0
議論に参加できるぐらい出世しろ
2022/01/05(水) 20:20:48.72ID:jje+EFiu0
>>435
お前の会社は社長が1番技術力高いのか?
2022/01/05(水) 20:41:21.39ID:P9kF/5N50
varで推論しないほうが脳への負担が低いというのはどういうことですか?
2022/01/05(水) 20:42:40.80ID:C1Xb8B3u0
>>437
型が分からなくてもイライラしない人はそもそも負担がありません。
2022/01/05(水) 21:00:44.67ID:jje+EFiu0
アホが作った無意味なマトリョーシカクラス追わなくて済むからな
2022/01/05(水) 21:16:57.60ID:w42D9Ab/0
15年近く前から導入されてるものに対して
いまだに文句を言い続ける「熱量」には感心する
2022/01/05(水) 21:20:57.24ID:jje+EFiu0
>>440
正直、クラスから嫌いです
構造体以上のメリットを全く感じたことない
2022/01/05(水) 21:56:49.45ID:LjEcMnXra
>>441
そこは「しっくりこないんです」、と書いて欲しかったw
2022/01/05(水) 22:09:26.64ID:R56PdZ5+0
staticおじさん生きてたのかw
444デフォルトの名無しさん (ワッチョイ 2e8e-6dX5)
垢版 |
2022/01/05(水) 23:32:21.89ID:9KUuQ3bM0
わかってる奴がvar使うのはOK
馬鹿がvar使うのはNG
2022/01/05(水) 23:33:33.69ID:HyMzvNe00
じゃあdynamicつかうね
2022/01/06(木) 02:10:11.97ID:jegOl+WX0
>>431
推論させる方が脳への負担は低いよね?

型がわからなくてイライラすると言うけど、解る必要ある部分ではないのでは?
極端な話メソッドの入口と出口は型が決まってんだから。
2022/01/06(木) 02:36:29.67ID:Vr7+jyV40
そのメソッド追っ掛けるのが面倒だって話ではないのか
2022/01/06(木) 02:50:36.77ID:ChZ1cCgVa
>>446
推論の主語が変わってるよw
あなたの言ってる推論の主はコンパイラ(開発環境)だよね?w

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

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

結局varについても意見が割れるのは前にも書いた(>255)こういう意識の差があるからだろうね。
世の中KISSなんてただのお題目だと思っててなぜ重要か体感レベルで実感できない人が結構いる。
449デフォルトの名無しさん (ワッチョイ e510-JblN)
垢版 |
2022/01/06(木) 03:46:43.08ID:Jy6L3sVt0
>>448
>コードを書いてる時の書き手にとってはどの変数がどの型かなんて当然自明なんだから

馬鹿はvarを使えばエラーが出ないという理由でvarを使っているだけで型なんか理解もしとらんのだよ
450デフォルトの名無しさん (ワッチョイ ade6-X9o+)
垢版 |
2022/01/06(木) 06:07:27.91ID:WSidiaMA0
>>449
その発想はなかったわ
バカの考えは馬鹿にしかわからないのだな
2022/01/06(木) 08:30:02.04ID:GGuE86Bnd
>>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で充分では?
2022/01/06(木) 09:18:51.63ID:BMV6DlOj0
全く論点が不明
コードレビューでは全てのvar変数をマウスオーバーして型を確認しなければならないと言うのもシチュエーションとして理解不能、猿が働いてる企業なのか?

そもそもそんな使用の是非の議論が必要な話なら世の中にvar禁止の組織はさぞかしあるんだろ?
御託並べる前にgithubでvar禁止にしてるC#プロジェクトでも持ってこいよw
2022/01/06(木) 09:23:52.72ID:BMV6DlOj0
この手の「一人のstaticおじさんに大勢が説教する図」はさまざまなスレで見かけるけどまったく生産性ゼロで不毛だよな
ほかに同調する奴いない時点で自分が間違ってる可能性か考えろよ
まず自分を疑うのはエンジニアの基本やろ
2022/01/06(木) 09:37:12.69ID:VWdkYx+r0
>>440
また低能馬鹿論理でましたね。WPFでも同じ馬鹿なこと言ってる人がいました。
2022/01/06(木) 10:00:08.90ID:WPmMIBV7M
>>451
C#だとresultの型は推論できないんだっけ?
2022/01/06(木) 10:02:24.36ID:VWdkYx+r0
>>ID:BMV6DlOj0

論点すら分からない馬鹿でも喋らなきゃ無知はバレない。
2022/01/06(木) 10:07:20.21ID:sIABQ4ka0
初心者スレで無知晒しても別に構わんだろ
ちゃんと教えてやれよ
2022/01/06(木) 10:10:39.02ID:jegOl+WX0
>>455
resultというか、メソッドの宣言的には省略不可。
なので、returnしているということはvarでも良いかもしれんな。
2022/01/06(木) 10:11:51.45ID:VWdkYx+r0
>>ID:BMV6DlOj0
いちいち捏造してはマウンティングしてきて
相手を猿だの罵倒してくるクソ野郎にはクソレス返しで十分。
460デフォルトの名無しさん (ワッチョイ 4274-miAB)
垢版 |
2022/01/06(木) 10:36:42.54ID:cm3DDwaa0
議論用でやれば
凄い流れるんだけど
2022/01/06(木) 10:38:33.11ID:BMV6DlOj0
数千のvarをマウスオーバーして型を調べるってんだからそんなもん猿以外の何者でもないだろw
それでカネ貰えるんだからいい仕事だなあ

で、var禁止のC#プロジェクトは見つかったのか?
さっさと探してこいよ
2022/01/06(木) 10:42:17.16ID:VWdkYx+r0
ID:BMV6DlOj0 ←無職のクソ野郎が仕事を語る
2022/01/06(木) 10:52:01.70ID:XJZjWgUBd
戦犯は>>323
2022/01/06(木) 10:58:22.55ID:VWdkYx+r0
>>463
馬鹿の壁の社会実験。参加してくれた馬鹿に感謝する。
2022/01/06(木) 11:41:47.82ID:CKbwlJU4M
>>458
メソッドの宣言?
ここの話だろ
> IQueryable<Bar> result = xxxx.Where(predicate).Take(10);
xxxx の定義によるけど普通は var で良くね?
2022/01/06(木) 12:18:50.36ID:+o9sIybza
IQueryable<Bar> result = xxxx.Where(predicate).Take(10);
↑だとこの一行でBarとってるとわかる

var result = xxxx.Where(predicate).Take(10);
これだとなにかを取ってるとしかわからない。たった数文字の差だけど受け取れる情報が多くなって読みやすい
俺みたいなエスパー能力低い人間にとっては普通に書いてくれた方がありがたい
2022/01/06(木) 12:34:17.18ID:B4j0C8aZM
試してみたけどpredicateの型を明示的にExpression<Func<T>>にしてないと
WhereがIEnumelableで解釈されてだめやね
resultの型をIQueryable指定しててもコンパイルエラー

Whereにlambdaのリテラル入れた場合は varでOk
2022/01/06(木) 12:57:35.75ID:jegOl+WX0
>>465
すまん、そこ間違えた。varで良い。
言語によってはTask<IQuerable<Bar>>が要らない言語があるんよ。

確かにBar取ってるとわかるが、Barを取っているとわかる必要はある?

>>467
スマホで書いたらダメだな、すまん。
2022/01/06(木) 13:20:28.91ID:+o9sIybza
Barだと分かる必要はないけど分かったほうがありがたい
無地のジグソーパズルでも問題なく完成できるけど、絵柄があったほうがありがたいのと同じ
2022/01/06(木) 13:50:37.41ID:A4g6fK0TM
わかる必要はないのわかったほうがありがたい?
初心者にありがちな必要ないのにやけに細部にこだわるタイプなのかな?
2022/01/06(木) 14:04:18.23ID:+o9sIybza
その行の前後見ればvarとあってもそれがBarだとわかる
でもBarと明示してくれたら前後見る手間なく分かる、たったそれだけの差をありがたいと言ってる

var result = colBar.Where(predicate).Take(10);
xxxxでなくcolBarというように書かれてたらvarでもBarだと分かるからありがたいし
もっと言えばresultとかやめて
var resBarTop10aroundPOI = colBarInTokyo.Where(predicate).Take(10);
こんな風にしてくれたら、この一行見るだけでそれが何しているのかが分かってありがたい
俺みたいに理解力に乏しい人間にとっては情報量多いほうがありがたいんだよ。無駄に多すぎるのは勘弁だが
2022/01/06(木) 14:08:45.09ID:t38juXmg0
class HogeBase
{
・・・
}

class Hoge : HogeBase
{
・・・
}

static Hoge GetHoge()
{
  return new Hoge();
}

の場合


HogeBase hoge = GetHoge();

だと右辺の型確認しない主義の人はhogeの実態がHogeBase型だと勘違いしたまま作業することになるからまずいんじゃないの?
2022/01/06(木) 14:13:52.71ID:HsEWm91X0
それは勘違いじゃないんじゃないの?
2022/01/06(木) 14:15:52.97ID:+o9sIybza
それはHogeBaseとして扱いたいからHogeBaseに入れてるんでしょ
中身はHoge2やHoge3かもしれない。Hogeと知らなくてもいいよ
2022/01/06(木) 14:19:47.84ID:t38juXmg0
virtualメソッドがHogeとHogeBaseで違う動きするよ?
virtualがHogeBaseの動きする前提でレビューしていいのかい?
>>473
>>474
2022/01/06(木) 14:29:24.20ID:HsEWm91X0
何か問題が?
それで困るなら派生させちゃ駄目
2022/01/06(木) 14:33:13.09ID:+o9sIybza
HogeBaseがさらにIBaseってインターフェース派生だったらどうするよ
IBase hoge = GetHoge();
hogeは何も実装できないInterfaceだから何の動作もしないはずなんて思うやつはいない

そもそも型に対して前提としてる考え方が違う
GetがHogeじゃなくてHogeBase返してきたら右辺見ても区別つかないよ
static HogeBase GetHoge()
{
  return new Hoge();
}
2022/01/06(木) 14:33:43.94ID:t38juXmg0
>>476
へー、呼ばれるメソッドを間違えて認識しててもレビューできるんだ
すげーな
2022/01/06(木) 14:37:00.03ID:t38juXmg0
>>477
うん、だからレビューするなら真面目に右辺のメソッドの中身まで確認しろってこと
2022/01/06(木) 14:41:37.87ID:A4g6fK0TM
>>478
えっ?
多態使ったことないんか?
2022/01/06(木) 14:54:39.91ID:t38juXmg0
使ってるからこの話題持ち出したんだけど
>>480
2022/01/06(木) 15:15:22.51ID:FKeKEAH4M
hoge.fuga();
って言うコードをレビューする時に実際に呼ばれるメソッドがまだ作られてないケースもあるんだけどどうやってレビューしてるの?
2022/01/06(木) 15:19:14.44ID:Rudq/m5Ya
>>451
人の話聞かない人?何が言いたいのかさっぱり分からん。

恐らく誰も、少なくとも俺は
「varを使うと自動的に左辺の変数が不明瞭になるからvarは一切使うな」
などとは言ってないの。
例えば>>431

むしろ現実的にはほとんどの場合varでいいんだよ。
それはコードの書き手にも読み手にもメリットがある。

論点は>>412に書いた通り、「右辺の型が推測しづらいケースでもvarを使うのは不適切じゃないのか?」だ。
2022/01/06(木) 15:20:25.57ID:77VqpiEwM
var嫌がってるのってもしかしてテストコードを書かない種族の人?
2022/01/06(木) 16:21:47.64ID:7whnQ4QD0
ワイはvarのほうが効率あがる
うちはそこはレビューよりも書き手優先でvar推奨(c#)
レビューも気にするならその段階でIDE起動してる

その現場でいちいち書かせたいんなら型明示を強制すればいいんでね
うちのとこはそんなとこまでちまちま言い合うほど暇じゃないし、それ以上にテスト充実してほしい勢
まあvarにわざわざ書き直させたりもしないねw
2022/01/06(木) 16:35:03.08ID:+o9sIybza
俺はvarが嫌なんじゃなくて読みにくいコードが嫌
で、読みにくい要因の一つがvarだということな
さらに自分がvar使うのが嫌なんじゃなくて他人が使ってるのが嫌。自分のコードだったらそんなこと気にしなくても読めるし
自分に優しく他人に厳しくがモットーなんだよ
487デフォルトの名無しさん (ワッチョイ 9901-45BR)
垢版 |
2022/01/06(木) 16:36:42.04ID:OeKJG00I0
私C#良く分からないのですが、
そんな私がC#の説明することになりました。

クラスが参照型なのですが、どういう理由でこうなっているのか、
どういう意図でこうなっているのか、何と言って説明すればいいの?
本読んでも「参照型はポインタ的な雰囲気の何か」的な説明しかなくて
なんでこうなっているのか全く書いてなかった。

ちなみに、参照型=ポインタと言い切っちゃってもいいのかな??
よろしくお願いいたします。
488デフォルトの名無しさん (ワッチョイ 9901-45BR)
垢版 |
2022/01/06(木) 16:38:59.36ID:OeKJG00I0
コード書くときはvarで書いて、
それをintとかlongに変換してくれるツールを作ればいいだけなのでは??
2022/01/06(木) 17:01:20.10ID:WCTWOnks0
>>487
書籍に例えるとどちらも目次に該当する
ポインターがページ数だとすると参照型ってのはタイトル
2022/01/06(木) 17:31:36.72ID:ae3RunliM
>>487
参照型はデータそのものじゃなくデータへの参照を持ってる型

C言語しか知らない人にC#を説明するんじゃなければわざわざポインタとの対比で説明する必要ないよ
2022/01/06(木) 17:35:14.31ID:WCTWOnks0
Varでも何でもいいけど読みながらその都度型を類推するよりは読む前に何をしてるか理解してから読む
大まかな流れを理解してから読むのとメクラ滅法に読むのじゃ時間が100倍も1000倍も異なるからね
書く時だってそう
2022/01/06(木) 17:50:32.30ID:rL+VifTwM
>>483
> 論点は>>412に書いた通り、「右辺の型が推測しづらいケースでもvarを使うのは不適切じゃないのか?」だ。
具体的にどういうケースを言ってるの?
2022/01/06(木) 17:51:43.10ID:VWdkYx+r0
>>492
型が分からなくてスルーできる脳みそが羨ましいわ〜
2022/01/06(木) 17:55:43.01ID:h7LPoqLqM
そもそもvarがいいのって書くときだけじゃん
戻り値なんかでやられると最悪じゃん
2022/01/06(木) 17:58:59.73ID:XJZjWgUBd
結局宣言行まで戻って型見る面倒
ショートカットでいいような
2022/01/06(木) 18:41:32.37ID:6bRgcWdcM
>>493
そういうレスしかできない時点でなにも困ってないのがバレバレやん
2022/01/06(木) 19:04:48.00ID:VWdkYx+r0
>>496
トラが檻に戻ってないのに確認しないで施錠できる脳みそみたいな
2022/01/06(木) 19:25:09.72ID:OeKJG00I0
>>489 >>490 返答ありがとうございます。

「参照型とは何か」を問うているのではなくて、
クラスが参照型なのは、どういう理由でこうなっているのか、
どういう意図でこうなっているのかを問うています。
クラスを参照型にしている思想は何かということです。
2022/01/06(木) 19:27:13.03ID:6bRgcWdcM
単なるアホかよ、NGしとくわ
2022/01/06(木) 19:34:15.72ID:VWdkYx+r0
>>499
推測しづらいケースが一つも思い浮かばない→推測をしたことがない→馬鹿の壁
2022/01/06(木) 19:34:56.89ID:jNRDp0FJa
>>498
逆に参照型じゃないならどうする?
多くのデータを抱えたクラスを毎度毎度コピーして渡すコピー型にでもする?
2022/01/06(木) 19:35:48.42ID:Bcw/lb7Z0
>>498
C# クラス 参照型
でググれば一番上にお前が望んでいる答えがあるぞ
503デフォルトの名無しさん (ワッチョイ 9901-Oi6W)
垢版 |
2022/01/06(木) 19:38:04.42ID:OeKJG00I0
var addFunc(var a, var b){ return (a + b); }
とかはありですか??
2022/01/06(木) 19:42:33.04ID:Z0ROnAB1M
>>503
その宣言内容だけでどうやって型推論するのか
いくら何でもコンパイラに与える情報が足りなさすぎる
2022/01/06(木) 20:15:49.57ID:pGhYWD4M0
>>499
気付くのが遅いぞ
コレいつもの人だわ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況