X



ふらっと 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(水) 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
気付くのが遅いぞ
コレいつもの人だわ
2022/01/06(木) 20:27:11.92ID:VWdkYx+r0
>>505
おまえの型推論はバグってるな。
2022/01/06(木) 20:53:48.44ID:2nit6p8q0
>>471
これ、古より嫌われているシステムハンガリアンだから結構嫌がる人多いと思うよ
508デフォルトの名無しさん (ワッチョイ ade6-X9o+)
垢版 |
2022/01/06(木) 20:55:39.69ID:WSidiaMA0
winapiのクソキャストにはハンガリアンぐらいが丁度いい
2022/01/06(木) 20:59:03.64ID:snULIxlRa
>>487
問題設定自体を変えた方がいいかもね。
なぜ値型ではだめなのか?と。

値型だと少なくとも「フールドを増やしたサブクラスの値を
ベースクラスの型の変数に入れる」なんて芸当は難しくなるね。

というか、こういう禅問答みたいな話は(たぶん重要なんだろうとは思うけど)
初心者は後回しにした方が絶対にいいと思う。
2022/01/06(木) 21:28:53.73ID:TiVU33P2M
>>498
参照型を理解してないんだからそれを理解するのが先

クラスが参照型なのはポインタ型や値型だと困るから
文字列が値型だとどうなるか考えてみれば?
ポインタを理解してるならすぐわかる
2022/01/06(木) 23:17:09.17ID:mv8eR6oh0
C#のスレでメソッド名の先頭が小文字から始まってる時点で、
・意識が低い
・まともに調べたり勉強していない
どちらかであることを認識すべき。
2022/01/06(木) 23:20:50.62ID:VWdkYx+r0
varがある時点でやっつけ専用言語なのに
2022/01/06(木) 23:32:25.27ID:8QDluGwV0
>>512
???
2022/01/06(木) 23:51:42.25ID:t38juXmg0
>>512
今時C++でさえ型推論付いてるというのに
2022/01/06(木) 23:53:35.71ID:VWdkYx+r0
どうしてもc++でやっつけコード書きたいから追加した仕様だろ
2022/01/07(金) 00:03:01.88ID:IK3vjsT30
今時型推論ないほうが珍しいだろ
2022/01/07(金) 00:09:41.99ID:qow9t6Ky0
やっつけコードしか書かないプログラマだらけの時代に何言ってんだ
昔はOSの無償サポートは10年とかだったのに今はすぐサポート切れの切り捨て。
なぜならやっつけコードで保守する気ないからだ。Win8とかEdgeとかWPFとかぜーんぶやっつけで作ってたからすぐ捨てられた。
2022/01/07(金) 00:23:20.23ID:bs4RpyaW0
型推論はやっつけなのか。
古き良きなのか、時代についてこれないのか
考え方は人それぞれよね
2022/01/07(金) 00:30:28.71ID:uWMJJK3h0
型推論だめってチームいやだわ
ギスギスしてそうw
2022/01/07(金) 00:32:56.56ID:IK3vjsT30
型推論付きの言語はやっつけ専用か
普段この人は何言語でやっつけじゃない開発してんだろう
2022/01/07(金) 00:40:49.40ID:YgufRjXg0
最近は「int key = 0」でなく「Key key = new(0)」みたいに書いてるからvarは使わんな
2022/01/07(金) 06:45:05.41ID:j4Wq+RBJM
>>520
・老害のCOBOLer
・自称スーパープログラマーな組込C使い
・Javascriptのvarと混同してるボンクラPG
2022/01/07(金) 08:15:52.34ID:y6x0s+uzd
var一切使わない人ってラムダの引数型もクソ真面目に書いてそう
2022/01/07(金) 09:50:10.76ID:qow9t6Ky0
スップw 初心者スレでラムダw
2022/01/07(金) 10:00:38.21ID:qow9t6Ky0
知らないうちにLINQスレもなくなってる。過疎なム板で落ちるとかよほど人気ないのか。
>>523 そうやってガキみたいに初心者相手にマウンティグして全部追い出したんじゃないのか。
2022/01/07(金) 11:42:40.26ID:yxixByMw0
おーっとここでガキマウントです
527デフォルトの名無しさん (ラクッペペ MM26-X9o+)
垢版 |
2022/01/07(金) 11:50:35.85ID:FRwoYiaWM
>>524
初心者のくせにラムダなんて生意気だ!
ってマウントですね
528デフォルトの名無しさん (ワッチョイ 9901-45BR)
垢版 |
2022/01/07(金) 12:38:03.65ID:6zNCaZbD0
>>509
>> 値型だと少なくとも「フールドを増やしたサブクラスの値を
>> ベースクラスの型の変数に入れる」なんて芸当は難しくなるね。

すみません。良く分かりません。クラスが値型のC++で
「フールドを増やしたサブクラスの値をベースクラスの型の変数に入れる」
なんて芸当、なんの問題もなくできると思うのですが

>>510
>>文字列が値型だとどうなるか考えてみれば?

文字列は内部実装は参照ですが、ユーザ見えは値型と同じだと思うんですが・・・
内部でどう実装されているのかは、そんなに説明するつもりもないし・・・
2022/01/07(金) 13:00:57.38ID:y6x0s+uzd
>>528
ベースクラスの変数に入れることはなんの問題もないけど逆の操作派生クラスに戻せなくなる
C++でもそうだけどnewされた時の型をベースクラスが覚えておかないとvirtualとかasが使えない
530デフォルトの名無しさん (ワッチョイ 9901-45BR)
垢版 |
2022/01/07(金) 13:01:07.20ID:6zNCaZbD0
返答ありがとうございます。

>>501
>>逆に参照型じゃないならどうする?

c++ではクラスは参照型ではないですよね?
c#では構造体は参照型ではないですよね?

>>502
>> C# クラス 参照型
>> でググれば一番上にお前が望んでいる答えがあるぞ

配列が参照型なのを考慮すると、高速化・・・・
いや、そのサイト見てると高速化よりも
ポインタを無理やり追い出した弊害に思えてきました・・
2022/01/07(金) 13:03:35.17ID:qow9t6Ky0
c++に参照あるのに
2022/01/07(金) 13:03:54.16ID:y6x0s+uzd
>>528
型ってのはコンパイル時に大きさ(byte数と配置)が決まってないといけないという縛りがCのときからある
長さがいくつになるか分からんstringは参照型にするしかない
2022/01/07(金) 13:06:18.93ID:qow9t6Ky0
クラスや構造体の中にポインタもって動的にメモリを確保するだけである。型のサイズは変わらない。
534デフォルトの名無しさん (ワッチョイ 9901-45BR)
垢版 |
2022/01/07(金) 13:08:54.79ID:6zNCaZbD0
>>529
>>C++でもそうだけど

まことに申し訳ないけど、何を言いたいのか全く理解できません。
クラスが値型のC++でも通用する話を出してきても???と思うんですが
2022/01/07(金) 13:09:35.44ID:IAj8vN+S0
>>530
生のポインタだとオブジェクトを移動して断片化したメモリの整理が出来ない
536デフォルトの名無しさん (ワッチョイ 9901-45BR)
垢版 |
2022/01/07(金) 13:12:31.36ID:6zNCaZbD0
>>532
それだとクラスは値型でOKという話になっちゃいます。
537デフォルトの名無しさん (ワッチョイ 9901-45BR)
垢版 |
2022/01/07(金) 13:17:33.66ID:6zNCaZbD0
>>535
ひょっとして私根本的な所を理解していないのかな?
class clsA { class clsB { class clsC { xxx }}}
みたいなクラスの内部にクラスを含んだクラスであっても
GCでガンガン割り当てられているメモリアドレスを
動かされると言いたいのでしょうか??
2022/01/07(金) 13:18:48.25ID:qow9t6Ky0
で参照の何を議論してるんだ?
c#のクラスが参照型なのが許せない!!って言いたいのか? キミがそういうのならそうだろう。キミの中ではな。
539デフォルトの名無しさん (ラクッペペ MM26-X9o+)
垢版 |
2022/01/07(金) 13:26:11.81ID:FRwoYiaWM
参照のほうが便利だからじゃね?
540デフォルトの名無しさん (ワッチョイ 9901-45BR)
垢版 |
2022/01/07(金) 13:28:12.36ID:6zNCaZbD0
>>538
>> c#のクラスが参照型なのが許せない!!って言いたいのか?

質問を読んでそういう理解なのでしょうか?
質問を読まずにそういう理解なのでしょうか?
2022/01/07(金) 13:34:18.44ID:qow9t6Ky0
>>540
誰が質問をしたかすら知らないが、質問を質問で返す。つまりそれは構ってちゃんだ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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