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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part149
http://mevius.5ch.net/test/read.cgi/tech/1608085775/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://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
http://referencesource.microsoft.com/
・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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/04/17(土) 01:02:22.39ID:v4ZcCEOKa
class DaemonSequenceException:Exception
{
  public Exception FooResult { get; set; }
  public Exception BarResult { get; set; }
....
}
とかみたいに他の部分の成否と無関係に実行できる各部分に名前をつけて、
その部分の例外をプロパティーで持つとかするのかね知らんけど
2021/04/17(土) 10:56:45.87ID:F6GtSG/H0
DirectoryInfo.GetDirectories は例外を送出するけど処理は継続する
2021/04/17(土) 20:32:02.82ID:mfYtpggw0
まあ、結論としては
c#的にはこういう複数の処理が失敗するまたは終了処理も失敗するケースは言語的には完全に想定外ってことですかね
2021/04/17(土) 20:42:29.21ID:IkH2FR7eM
>>234
そもそも一体何をしたいのかさっぱりわからん
記録したいだけなのか失敗毎になにか処理したいのか
2021/04/17(土) 20:47:08.33ID:mfYtpggw0
>>235
1メソッドでたくさん失敗するんです
でも例外って1つしか返せないじゃないですか?
2021/04/17(土) 20:47:45.31ID:7MTKb57l0
>>234
地道に処理毎にtry{}catch(){}で囲めばいいだけ
言語のせいにするのはお門違い
2021/04/17(土) 20:50:06.01ID:mfYtpggw0
>>237
そもそも例外で返すのが間違いということでしょうか?
2021/04/17(土) 20:56:09.74ID:7MTKb57l0
>>238
<1>
var exceptions = new List<Exception>();

<2> (処理の数だけ作る)
try
{
 処理
}
catch( Exception e )
{
exceptions.Add( e );
}

<3>
throw new AggregateException( exceptions );
2021/04/17(土) 20:59:45.02ID:mfYtpggw0
>>239
ありがとうございます
それって受け側ってどう書くんでしょうか?
2021/04/17(土) 21:15:57.36ID:PG7156wz0
>>240
受け側って何を指すのかわからないけどエラーをcatchしておいて投げなおしているだけじゃね
>>230の考え方でエラー起こるたびに「〜の処理中に〜のエラーが起きました」って全部記録する形から作っていけば?
エラー発生しても続行させる処理の方が大変になると思うしとりあえず一通り作ってみた方がいい
2021/04/17(土) 21:17:13.40ID:8nmJAkjBM
>>236
だから受け側で何をしたいんだよ…
2021/04/17(土) 21:20:05.07ID:mfYtpggw0
>>241
普通に

try
{
}
catch(exception ex)
{
}

でaggregateexceptionってキャッチできますか?
2021/04/17(土) 21:23:05.33ID:gq87BRHm0
簡単なサンプルで試してみればいいでしょ…
2021/04/17(土) 21:24:17.27ID:3+8Yd0vAa
たぶん欲しいのはエラーのログなんだろうね。
あるいはPOSTでやるようなチェックリスト?

例外オブジェクトをエラーを表す目的で使ってもいいとは思うけど、
何がしたいのか目的をはっきりさせずに「例外をストックできるか?」とか質問するから
みんな混乱する。
2021/04/17(土) 21:38:41.80ID:8nmJAkjBM
なぜかこういう人は何をしたいのか書かないんだよな…
まあもういいや、相手もしてもしょうがなさそうだし
2021/04/17(土) 21:38:56.54ID:7MTKb57l0
>>243
それで出来るけど、catch( AggregateException ex )で受けた方が
AggregateException.InnerExceptionsを参照しやすくていいんじゃない
2021/04/17(土) 21:42:46.43ID:mfYtpggw0
>>246
正直
俺もよくわからない(笑)
2021/04/17(土) 21:43:49.75ID:mfYtpggw0
>>247
ありがとうございます
受け側はなんの例外がくるかしらないんですよ多分
2021/04/17(土) 21:51:17.10ID:6GAIvEwc0
例外を見ればどの処理で発生した例外なのか確実に分かる場合はいいけど
そうじゃないならList<Exception>だとたぶん困るよね
2021/04/17(土) 22:17:04.15ID:svTSVNg/M
>>250
どこで発生した例外かを知りたいなら例外にその情報を入れとけば良いだけだろ
2021/04/17(土) 22:42:26.62ID:6GAIvEwc0
>>251
>>239の例ではそれをやってないから困るんじゃねって話なんだけどさ
2021/04/17(土) 23:35:25.92ID:svTSVNg/M
>>252
ExceptionでもSourceに入れるとかMessageの一部に入れるとかやりようはいくらでもあるだろ
2021/04/17(土) 23:49:44.95ID:CX6JLVJZM
エスパー回答すると、Disposeをしっかり作ってusingを使え、が顧客が本当に欲しかったもの
255デフォルトの名無しさん (ワッチョイ d768-B9Cj)
垢版 |
2021/04/18(日) 00:46:37.58ID:hpbx6fns0
C#の話と関係無いかもしれませんが、パッケージの開発環境って今の時代何がありますか?
完全にオフラインで使える開発環境とかって無いんでしょうか?コマンドプロンプトしか無いんでしょうか?
2021/04/18(日) 01:09:20.83ID:IgLv47etM
落ち着け(´・ω・`)
パッケージ、開発環境、コマンドプロンプト
全然話が繋がっていない
2021/04/18(日) 08:55:30.53ID:v8qpskqd0
開発環境と言われても困るな
聞きたいのはここら辺?
https://it-kyujin.jp/article/detail/1512/
2021/04/18(日) 18:43:20.44ID:H0K908230
なんとなくエスパーすると、開発ソフトをインストールさえすれば、その後はネット非接続で何でも開発出来る環境が理想ってこと?
なら、たぶん無い。

.net sdk使って、標準ライブラリだけ使うなら出来るんかな?
結局必要なライブラリやらランタイムをDLするか、他のPCでDLして開発PCに入れる事になりそうだけど。
2021/04/18(日) 18:52:54.76ID:qPyS0oex0
>>258
待て待て、標準ライブラリだけでもオフラインで開発できるなら、回答しては「Yes」じゃないか?
特に、その「他のPCでDLして開発PCに入れる事になりそうだけど」が出来るんだしさ

>>255
目的を話せ
俺のエスパー能力をフル発揮すると、
セキュリティ上、スタンドアローンで動かさんといかんPCがあって、そこで開発したいだよな?
260デフォルトの名無しさん (ワッチョイ d768-B9Cj)
垢版 |
2021/04/18(日) 21:38:47.12ID:hpbx6fns0
>>258
ありがとうございます!!!
環境を自分で作る以外ないんですかね。無謀すぎますね。
コンパイラ作るわけじゃないですからね統合環境は。
>>259
そうそう単にセキュリティの心配です。
オフラインだと全く外部に漏れる心配ないわけじゃないですか。
めちゃくちゃ安心するじゃないですか。

何でインターネットに繋いでないとプログラミング環境が整わないような
状況なんでしょうか?どう考えたってオフラインのほうがよくないですか?
2021/04/18(日) 23:39:25.09ID:svx6jcyS0
今はネットワーク繋いでなんぼの時代だから
2021/04/18(日) 23:42:54.47ID:4BU0O/MkM
そういうセキュリティの気にし方をするのであれば、普段使いのPCとは別に
個人情報を一切入れないPCを1台用意して開発勉強専用にするのが一番安心できると思うよ
外に漏れて困るようなレベルのコードを書くならダメだけどさ

というかMicrosoftDocsやGitHubやStackOverflow/Qiitaとか一切閲覧できない環境で
NuGetやNPMに登録されてる出来合いのライブラリもまったく利用しない縛りを入れて
自分の能力だけで1から100までコードを書けるなんてすごいなあ
俺にはそんな縛りプレイしてたらとてもじゃないけど開発にならないや
2021/04/19(月) 01:35:18.62ID:X+u8pzLd0
インターネットにつながっていないが故に管理がおろそかになってパッチ適用がされない弊害の方がやっかい
日立のランサムウェアなんかはまさにそれ
2021/04/19(月) 01:49:10.86ID:c6NDAp6p0
構造体(値型)を関数の参照渡し以外で、参照する方法ってありますでしょうか?
配列の構造体にアクセスするコードを書いているのですが、
逐一配列の添字計算が入るのも嫌なので避けたいと思っています。
添字の数は関数の中では変わりません。
今は関数の参照渡しで使っていますが、他に方法は無いのかなと思いまして。
2021/04/19(月) 02:02:38.37ID:Kd9UEe0s0
>>264
refローカル変数じゃあかんの?
2021/04/19(月) 02:03:15.10ID:lMV2Jqgd0
>>264
理想形が見えねぇ
2021/04/19(月) 02:06:16.22ID:4lrHWi0u0
配列の構造体って何?
2021/04/19(月) 02:06:36.98ID:XVH2We7ia
>>264
策士策に溺れてはいけない
愚直に一時変数を使いましょう
2021/04/19(月) 02:14:43.49ID:c6NDAp6p0
>>265
ref ってローカル変数に使えるんですね!
前に軽く試した時には右辺値にしかrefを記載してなかったので、
左辺の定義にもrefを記載すれば行けました。
有難うございました!
2021/04/19(月) 03:18:25.46ID:RtpbkBzw0
オフライン環境での開発だけど、
VS Community2019のオフラインインストーラをダウンロードして
オフライン環境に持ち込んで使ってる
c#でフォームのデスクトップアプリしか作らんので特に困ってない
2021/04/19(月) 07:43:09.06ID:rq760clV0
>>264
var p = &array[5];
2021/04/19(月) 07:51:00.81ID:trWXRHySM
ゆう君みたいにCSCで開発するのだ
2021/04/19(月) 08:22:30.53ID:X+u8pzLd0
>>270
バグや脆弱性対応は?VS2019って頻繁に更新されてるけど
2021/04/19(月) 08:27:27.76ID:eEvFTkhNM
>>273
offlineインストーラーも知らないのは開発者としてどうかと思う
2021/04/19(月) 09:01:07.98ID:qHBf6kdf0
getsetプロパティをFuncで呼び出せるようにしたいのですが可能でしょうか?
メソッドで括って呼び出せば良いのだろうけど直接Funcに入れる方法があるならそうしたいです
2021/04/19(月) 09:10:46.59ID:a1UfxEQG0
よく分からん
Func<string> func = () => person.Name;

Func<string> func = person.Name;
みたいに書きたいってことか? 無理だけど
func = person.Name.Surname;
のときperson.Nameがいつ解決されるのか判断つかないし
2021/04/19(月) 09:26:07.33ID:qHBf6kdf0
>>276
返信ありがとうございます

イメージとしては複数のクラスで
public bool hoge {set => test = value; }
が複数あって
List<Func<bool, bool>> func;
に追加していってキャンセルとか何らかの処理後に一括して戻したい、と言うような処理です

やはりプロパティってメソッドみたくできないFuncに入れる事ができないんでしょうか
他の方法ですっきりする方法はないですかね?
2021/04/19(月) 09:56:26.88ID:lMV2Jqgd0
やりたいことがさっぱりわからんな
ダイアログのキャンセル押したら画面ごと破棄でいいじゃん
2021/04/19(月) 10:04:55.77ID:aTPYfb0+0
>>277
List<Action<bool>> list;
list.Add(b => hoge = b);
こういうこと?
2021/04/19(月) 10:21:06.38ID:8YZTYag9M
まあ気持ちはわかる
(Webでなく)GUIアプリで独学した初心者って、エンティティオブジェクトをアプリ全体で生存させるような設計をしちゃうんだよな
オブジェクト指向を普通に解釈すりゃそれが自然なんだけど、実際そういう設計はしないんだよ
ドメインモデルだろうとトランザクションスクリプトだろうと、エンティティはトランザクション毎に作る
2021/04/19(月) 10:39:20.82ID:X+u8pzLd0
>>274
知らないって決めつけてるのはどうかと思う
単にどうしてるのか聞いているだけ
282デフォルトの名無しさん (ベーイモ MM4f-XYuH)
垢版 |
2021/04/19(月) 10:44:42.24ID:7XobiDdgM
>>278破棄と生成できれば良いのですがちょっと難しい。ユーザーコントロールでバインドしていて各コントロールは値を参照しあってます
今回は画面が切り替わったときに表示非表示を変える戻す、なので直接は関係ないのですが影響度を減らしたい
>>279
>>276見直してプロパティを直接でなくてもラムダ式でいけそうなことに気付き>>279さんの形を思い浮かびました、今出掛けてるので確認は後ですが多分解決できそうです

皆様ありがとうございます
解決しなければまた聞くかもです
ありがとうございます
2021/04/19(月) 10:58:10.70ID:Ee/wQKnTM
>>281
知ってて聞くのはもっとどうかと思う
2021/04/19(月) 12:13:19.27ID:lMV2Jqgd0
>>282
なんだかとってもおかしいよ
2021/04/19(月) 12:18:18.64ID:lMV2Jqgd0
これあれじゃね?
開始日と終了日に期間制限があると値が設定できないやつ(笑)
2021/04/19(月) 12:41:53.53ID:/vkKNniZa
何がしたいのかよく分からないね。

キャンセル要求が発生したら初期状態に戻したいなら
素直に初期状態をまるごとキャッシュしておく方が分かりやすいんじゃないかと思うけど

もっと素直なのはそもそもApplyするまでUIの値をモデルに反映しないことだよね。

まあたぶん要件を説明しきれてないんだろうけど
2021/04/19(月) 12:42:25.65ID:eG8AP0Ht0
>>282
元に戻す処理を管理したほうがいいケースなのか
元の状態を管理したほうがいいケースなのかを考えたほうがいいよ
2021/04/19(月) 13:39:27.50ID:lMV2Jqgd0
まあ、設定画面がモードレスでリアルタイムで値を変えたいときもあるかもしれんが
それやると
地獄の一丁目にご招待って感じ(笑)
2021/04/19(月) 13:46:03.66ID:0ewLpJwG0
Contract?
2021/04/19(月) 13:50:22.81ID:wot3CwpcM
>>288
更にundo/redoの機能を付けてくれまいか?

で更なる深淵へw
2021/04/19(月) 14:13:33.61ID:lMV2Jqgd0
>>290
影響する値でエラーが出てもそれとは関係ない表示はできる限り続けて欲しい(プレビューが見えないから)
エラーが出てるときは値の変更で表示は変わっても最後の反映はできないようにしてほしい
でも値を変更してる最中のundo,redoは効くようにして欲しい

って割とありがち要求だよね

モードレスやった時点で地獄を覚悟しろって感じ
292デフォルトの名無しさん (ラクッペペ MM8f-ZP9E)
垢版 |
2021/04/19(月) 14:17:30.66ID:5/g8GOz6M
そのためのMVVMですから!
2021/04/19(月) 16:11:25.84ID:X+u8pzLd0
>>283
めんどくさいのに本当にしてるのか気になったから聞いたんだけど何かおかしい?
2021/04/19(月) 16:13:54.25ID:LEIxqEAm0
うちにも本当にしてる端末はあるぞ。
むしろ自動で上げたくないしな。
既知の問題でワークアラウンドがあるならそれで良いというケースもあるし。
リリースノートめちゃくちゃ読む。
2021/04/19(月) 16:51:10.44ID:qG+FkDTLM
>>293
ネットに繋げないならそうするしかないし言うほど面倒でもないだろ
そもそもネットに繋いでる場合でもアップデートがある度に適用なんてしないよ
>>294が書いてるように修正内容見て影響ないとかワークアラウンドがあるなら適用しない
2021/04/19(月) 16:56:35.95ID:Ly5FRhD3d
オフラインがめんどうとか何言ってんの?開発する時にはセキュリティ上当然やろ
オンラインとか最近の開発ではありえない
2021/04/19(月) 17:17:52.34ID:ssZtrIutM
今のVSって最新メジャーバージョンは完全に人柱向けだからなあ
アップデートをすぐに入れられないような環境だと詰む可能性があるからむしろリスクが大きい
最新版を追えない環境なら2017使ったほうがいいよ
2021/04/19(月) 17:59:46.65ID:sAdoeVNCM
更新頻度はどちらも大して変わらん

https://docs.microsoft.com/ja-jp/visualstudio/releases/2019/release-notes#visual-studio-2019-version-169-releases

https://docs.microsoft.com/ja-jp/visualstudio/releasenotes/vs2017-relnotes#visual-studio-2017-version-159-releases
2021/04/19(月) 18:14:05.65ID:HuLqOw9zM
>>298
中身読めよ
2017の方は脆弱性修正と軽微なバグ修正しかやってない
2021/04/20(火) 00:39:35.61ID:TLYpp//E0
docker「…」
2021/04/20(火) 02:18:25.03ID:hE4KV5oa0
C#を勉強中です
Delegateの機能はわかったのですが、これはどのような状況で使うのか思いつきません
こう使うと便利だという例を教えてください
2021/04/20(火) 02:19:59.60ID:X693LKGY0
それは繊細な問題ですね
2021/04/20(火) 02:23:17.77ID:mCU9Z3ky0
delegateの機能が解説されていた箇所に書いてなかったの?書いてあったけどそれを理解できないってこと?
2021/04/20(火) 02:33:44.44ID:KMnW7zDR0
>>301
そのわかったというDelegateの機能を説明してみてもらってもいい?
2021/04/20(火) 02:54:23.22ID:C6K6mBrBa
>>301
真面目な話、無理に今理解しようとしなくていいと思うよ。
コード書き出ぜば自然に分かる。
後回しにして先に進んだ方が吉。
2021/04/20(火) 03:07:10.55ID:hE4KV5oa0
>>303
機能の解説だけでどのようなときに使うかは書いてなかったです

Delegate型の説明と作り方の後に例としてConsole.WriteLineでHelloと表示するメソッドを
新たに作ったDelegate型のaという変数に突っ込んでa()を実行して
ほら表示できたでしょという感じだったのだけれど
だからどうしたとしか思わなかったです
2021/04/20(火) 03:22:02.21ID:HBCxLvi90
自分も変数のシャドーイングとか何が便利なのかわからないです
脳みそのメモリ圧迫されるのでは
2021/04/20(火) 03:27:57.34ID:HBCxLvi90
>>306
こういうメソッドの引数がデリゲートで、まさに便利な使い方だと思ってる
https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.list-1.removeall?view=net-5.0

間違ってたら訂正よろしくです
2021/04/20(火) 03:33:39.19ID:hE4KV5oa0
>>308
これがdelegateだとしたら意識しないで使ってました
まさかこれが..
2021/04/20(火) 04:41:05.35ID:IRlXB/YU0
デリゲートは自分で使うもんじゃないと思ってた。
Buttonをクリックしたら、このメソッド実行してねってのを、IDEが作ってくれる奴だから。

だから、「こんなときどうしよう」って悩んだときに、
そうだ!デレゲートってのがあるんだよ!っていう、よっぽどの場合に、入門書を読めば良いと思う。
初めてのC#みたいな本がお薦めなんだけどね。
2021/04/20(火) 05:04:14.96ID:mPkgRyxP0
>>306
試しにhello2 からhello100まで突っ込んでみよう
2021/04/20(火) 08:17:28.06ID:UlsxkGg7D
デリゲート定期
313デフォルトの名無しさん (ラクッペペ MM8f-ZP9E)
垢版 |
2021/04/20(火) 08:29:39.05ID:2x6gxMkWM
デリケートに好きして
2021/04/20(火) 09:39:52.16ID:KMnW7zDR0
>>306
わからなかったらまず最初にリファレンスを読むといい
Delegateとは何かどういう目的で使われるのか普通に書いてる
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/delegates/
2021/04/20(火) 09:49:15.79ID:UooL86SRr
まあこういうものが腹に落ちるようになるのが楽しいとこでもある
2021/04/20(火) 11:01:31.30ID:wGU9ai2r0
>>313
パジャマのままで
2021/04/20(火) 12:07:45.54ID:7xfghfsY0
例えば、Ruby では、Forwardable でインスタンス変数に委譲できる

自分で配列クラスから、Stack を作って、その内のpush, pop だけを使いたい場合、
もし配列を継承・is-a すると、余計なメソッドまで継承してしまうので、それらを使いたくない。
そういう場合に、委譲・has-a で、インスタンス変数に委譲して、使うメソッドも限定できる

Go, Elixir も継承がない、委譲だけ。
継承は大掛かり。
使わないメソッドを呼ばれてしまう可能性があるから

また、誰でも使うような、String クラスなどを継承して、メソッドを追加されるのも嫌。
そういう継承は想定外だから

素人は、よくそういう事をする。
継承用のクラスじゃないのに継承したりする

require 'forwardable'

class Stack
extend Forwardable

def initialize( ) @ary = [ ] end
def_delegators( :@ary, :push, :pop )
end

stack = Stack.new
stack.push 1
stack.push 2
stack.pop

p stack #=> #<Stack: @ary=[1]>
2021/04/20(火) 12:25:42.67ID:7xfghfsY0
>>307
shadowing とは、内外の変数は、別々の扱いで、
内側のスコープに入ると、内側が優先されて、
外側の同じ変数名が隠されること。
その際、外側の変数には影響を与えない。

Ruby では、外側のa は10で、内側のブロックスコープでは、
同名の変数aを使っても、外側の変数には影響を与えない。
ブロックスコープを抜けると、aは10のまま

a = 10
ary = [ 1, 2 ]

ary.each do |a|
puts "ブロック内: #{ a }"
end

p a

出力
ブロック内: 1
ブロック内: 2
10
2021/04/20(火) 13:01:47.56ID:TyJgyLsfa
このスレはRubyの宝石箱や!まで読んだ。
2021/04/20(火) 20:38:25.40ID:mPkgRyxP0
火入れするかあんたのはスピネルや
と言うべきか
2021/04/20(火) 21:04:57.15ID:HBCxLvi90
なにかのネタというかエンジニアジョークなのかな? わからないや

シャドーイングがどんな機能なのかは単純だからわかってるつもりだけど、一見同じ変数名を扱えることで何が嬉しいの?って話です
コード読んでて混乱しそうなので無い方が綺麗だと思うのだが、自分の脳みそが貧弱なだけかな?
322デフォルトの名無しさん (ワッチョイ bf68-Zgro)
垢版 |
2021/04/20(火) 21:05:35.48ID:3ANNQsEU0
c から来た人なんだけど、デリゲートって関数ポインターの認識
323デフォルトの名無しさん (ワッチョイ bf68-Zgro)
垢版 |
2021/04/20(火) 21:08:17.98ID:3ANNQsEU0
半角の++が書き込めない。なんだこれ。
2021/04/20(火) 21:28:46.29ID:mPkgRyxP0
>>322
それがリストになっているので
複数の呼び出しを一気に行える。
という感じ
2021/04/20(火) 22:48:16.53ID:wpz1WDBF0
メモリリークの温床だがな。。
2021/04/20(火) 23:13:15.40ID:oW++joyya
>>321
嬉しいでしょ。
まあぶっちゃけフィールドをローカル変数で隠蔽することはあまりないと思うけどね。

>>322
Cより機械語レベルで考えた方が分かりやすいね。
要はcall命令のオペランドだよね
厳密にはthisポインタの情報を含むから違うんだろうけど概念的には
2021/04/20(火) 23:17:25.34ID:+w5LC8La0
初歩的な質問ですいません
オブジェクト初期化子とコンストラクタは何が違うんでしょうか?
やってることは同じのように感じるのですが…
2021/04/21(水) 01:35:22.73ID:qZ+z+JK20
>>324
デリケートって追加や削除されるたびに全リストコピーしてるんだっけ?
ぶっちゃけ効率考えたらデリケートよりインターフェースをリストで持たせた方が効率はいいよね
2021/04/21(水) 01:38:27.35ID:GnM/pYwY0
どいつもこいつもデリケートデリケートってよお!
2021/04/21(水) 02:00:12.49ID:9Dxtj7zY0
♪シーズソーデリケート(デリケート、デリケート)
2021/04/21(水) 05:50:25.83ID:iaWKhvh90
>>327
初期化子は参照側が任意に行う。代入しか出来ない。
コンストラクタはオブジェクト側が初期化のルールを決めて、ロジックが書ける。
ってことじゃないのかな。
■ このスレッドは過去ログ倉庫に格納されています