問題タブ [static-constructor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 静的クラスを暗黙的に初期化する
アプリの起動時に「自動的に」静的クラスを初期化することは可能ですか? 自動的とは、プロパティを参照する必要がないことを意味します。
これを実行できるようにしたい理由は、起動時にアプリを自動的にテーマにしたいからです。
ここに短いスニペットがあります:
私はできることを知っています(そしてそれが現時点ではそうです)元のゲッター/セッターを使用して呼び出すことができます
App のコンストラクターで (これは WPF プロジェクトです)、それは仕事をしますが、少なくとも私の観点からは (間違っている場合は修正してください)、デフォルトのテーマを適用せずに適用する方が理にかなっています明示的に述べる必要があります。
c# - デザイナーの使用時に静的コンストラクターが呼び出されますか?
実行時と設計時の両方で、いくつかの登録コードを実行したいと考えています。私にとって最善の方法は、静的コンストラクターを使用することのように見えましたが、実行されていないようです。
設計時に静的コンストラクターを実行する方法はありますか? そうでない場合、この種のことを行うための受け入れられたパターンはありますか?
c# - CLR は静的クラスをどのように処理しますか?
CLR が静的クラスを処理する方法を説明できる人はいますか? CLR は、静的クラスを内部で処理するためのシングルトン インスタンスを 1 つ作成しますか? そうでない場合、なぜ C# に静的コンストラクターがあるのでしょうか? (私の理解では、コンストラクターはクラスのインスタンス化にのみ使用します)
c# - これらのコンストラクタは両方とも同じことをしますか?
これらのコード ブロックは両方とも同じことを行いますか?
と
彼らは同じことをしますか?そう思います。
c# - シングルトン デザイン パターンの静的コンストラクター
MSDN で、シングルトン クラスを作成する 2 つの方法を見つけました。
と
私の質問は: 最初に使用する前に、このオブジェクトを作成する静的コンストラクターを使用できますか?
java - 加算および減算メソッドの静的バージョンを作成する際の問題 (これは Java にあります)
加算メソッドと減算メソッドの静的バージョンを作成するのに助けが必要です。私はそうしようとしましたが、これが正しい方法であるかどうか、またequalsメソッドが機能していないかどうかはよくわかりません。equals メソッドをコンパイルすると、常に false が出力されます。
c# - static フィールドの初期化の説明とその要件
これに関連する非常に多くの複雑な質問を見た後、静的フィールドの初期化を行う次のコードについて説明を求めたいと思います。もう 1 つ知りたいことは、静的フィールドの初期化の要件です。どのシナリオで役立つでしょうか??
出力:
初期B
初期化A
1 1
静的コンストラクターが存在しない場合、出力は異なる場合があります。その背後にある理論的根拠を理解できません.静的フィールドの初期化がこのフラグメントにもたらした違いは何ですか?. 誰か助けてください。私はc#の初心者です。
c# - メソッド呼び出しでは静的変数が null ですが、プログラムでは初期化されています
ここで、誰かが答えを知っているのではないかと頭を悩ませています。
セットアップは基本的に次のとおりです。
私の髪を引っ張っている問題は、変数が設定された直後に呼び出されたにもかかわらず、StaticClass.StaticVariable が IXmlSerializable.ReadXml() メソッドで null であることです。
注目すべきは、ブレークポイントがヒットせず、問題が発生した正確な場所で Debugger.Launch() が無視されることです。
不思議なことに、例外を発生させることで、AppDomain.CurrentDomain.FriendlyName プロパティは、静的変数が設定されている場所と null の場所で同じであることがわかりました。
なぜ静的変数が範囲外なのですか?!? どうしたの?!?変数を共有するにはどうすればよいですか?
編集:
応答の提案に従って、静的コンストラクターを追加し、Debug.WriteLine を実行させました。すべてのコードが同じ AppDomain で実行されているように見えますが、2 回呼び出されていることに気付きました。出力ウィンドウに表示される内容は次のとおりです。これが有用な手がかりになることを願っています。
呼び出された静的コンストラクター: 2015-01-26T13:18:03.2852782-07:00
...ロードされた 'C:...\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll'...
...ロードされた 'Microsoft.GeneratedCode'...
...ロードされた 'C:...\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll'....
...「C:\USERS...\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\12.0EXP\EXTENSIONS...SharePointAdapter.dll」をロードしました。シンボルが読み込まれました。
...「Microsoft.GeneratedCode」をロードしました。
呼び出された静的コンストラクター: 2015-01-26T13:18:03.5196524-07:00
追加の詳細:
いくつかのコメント投稿者が役立つと考えたので、実際のコードは次のとおりです。