問題タブ [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# - MethodBase.IsConstructor が静的コンストラクターで指定されたとおりに機能しない
簡単な観察です。このプロパティMethodBase.IsConstructor
はstatic
コンストラクターでは機能せず、ドキュメントではこの事実について言及されていません (引用: 「このメソッドがオブジェクトによって表されるコンストラクターである場合はtrueConstructorInfo
」)。
サンプル:
質問: なぜですか? バグまたは不完全な仕様?
c# - 基本クラスの静的コンストラクターが呼び出されないのはなぜですか?
2つのクラスがあるとしましょう:
呼び出した後Bar.DoSomething()
(Bar クラスにアクセスするのはこれが初めてであると仮定します)、イベントの順序は次のようになると予想していました。
- Foo の静的コンストラクター (ここでも、最初のアクセスを想定) > print
4
- バーの静的コンストラクター > 印刷
2
- 実行
DoSomething
42
一番下の行で、印刷されることを期待しています。
テストしたところ、2
印刷されているだけのようです。
そして、それは答えでさえありません。
この振る舞いを説明できますか?
d - 静的コンストラクターでの D プログラムの終了
次のような静的コンストラクターがあります。
ファイルのオープンに失敗した場合、プログラムの実行を停止するにはどうすればよいですか?
c# - クラスの新しいインスタンスの作成中に NullReferenceException が発生する
私が知る限り、エラーは次の行のいずれかで発生しています。
SomeClass の基本的な外観は次のとおりです。
規範をより一般的な用語に翻訳する際に読み間違えました。私はそれを修正しました。これはもう意味がありますか?
私は静的コンストラクターの経験がほとんどありませんが、私の本能は、問題がどこかにある可能性があることを教えてくれます。
c# - 静的イニシャライザ/コンストラクタの順序付け
今日、興味深いバグに遭遇しました。以下のコードは、一部のマシンではコメント行でクラッシュし、他のマシンではクラッシュしませんでした。この問題は、静的コンストラクターと静的イニシャライザーの順序付け、および継承に関連しているようです。
修正は #region のコードを別のクラスに移動することでしたが、実際に何が起こっていたのか、なぜ一部のマシンでのみ発生したように見えるのか、まだわかりません。
私はこれらの 2 つの記事を見てきました:
http://csharpindepth.com/Articles/General/Singleton.aspx
http://csharpindepth.com/Articles/General/BeforeFieldInit.aspx
これはある程度の洞察をもたらしますが、継承が物事にどのように影響するかについては触れていません。
c# - 私は間違っていますか、それとも Roslyn REPL は過保護ですか?
Roslyn を LinqPad のように使用しようとしていますが、完全に有効な C# のコード スニペットを使用していますが、それらは無効であると言われています。この標準ユーティリティ メソッドを検討してください。
Roslyn は、私が の out パラメータを呼び出すのは無効であると主張していますToUnderlying
。
beforefieldinit
静的コンストラクターを使用しない理由を尋ねる前に、クラスのクラス属性を保持していることを確認したいと思います。そうしないと、メソッドにアクセスするたびに初期化のコストを支払うことになります。C# ではこれは有効と見なされますが、Roslyn はそう言っています(6,76): error CS0199: A static readonly field cannot be passed ref or out (except in a static constructor)
static-constructor - c#で静的クラスのデストラクタを呼び出す方法は?
こんにちは、私はOOPSの初心者です。これを理解するのを手伝ってください
静的クラスの批判者を呼び出す方法は? または、静的クラス、メソッド、およびオブジェクトにメモリを割り当てる方法は?