[過去ログ] ふらっと C#,C♯,C#(初心者用) Part158 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
225(2): (ワッチョイ 4201-BePx) 2023/04/11(火)23:11 ID:/nZPjbDG0(1) AAS
1: Console.WriteLine(Foo.X); // 3
2: class Foo {
3: public static Foo Instance = new Foo();
4: public static int X = 3;
5: static Foo() => Console.WriteLine(X); // 3
6: }
静的コンストラクタのあるクラスの場合は
静的コンストラクタが実行される直前に静的イニシャライザが定義順で実行される
1行目のFoo.Xで静的コンストラクタがトリガーされるけど
その前に静的イニシャライザが3行目、4行目の定義順で実行される
省3
226: (ワッチョイ 9194-izbf) 2023/04/12(水)01:51 ID:3I+WNe+L0(1) AAS
>>225
分かりやすい説明有難う御座いました。
236: (ワッチョイ 4201-BePx) 2023/04/12(水)14:11 ID:uWUQySNG0(1) AAS
本に書いてあるコードでは>>225の5行目にstaticはついてない
3行目と4行目を入れ替えると出力結果が変わるようなことになるという注意を促して
イニシャライザの実行順序を理解させようとしている
static fieldの定義順に依存したコードはアンチパターンと言ってもいい気はするが
現実には↓こういうコード書く人がいるので動きを理解してることは重要
外部リンク:stackoverflow.com
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.027s