-4

.net プログラムの実行フローに関する疑問

数年間、私は開発者として働いていますが、C# の勝利や Web アプリの実行方法についての知識が不足しています。IDE からアプリケーションを実行すると、コンパイラがどのようにシーンに入り、プログラムをコンパイルするか、その後、どのようにプログラムが開始されるか....CLR がどのようにシーンに入り、JIT がどのようにシーンに入るか。プログラムのエントリポイントを制御する人。プログラムのエントリポイント、いわゆる static void Main() を外部から呼び出す人など。CLRがプログラムの実行にどのように責任を負うか、CLRに誰が関与するか。JITがどのように関与し、誰がJITに関与するか。エントリ ポイントが static void main() である理由

多くの本は、C# でコードを書くのに役立ちますが、プログラムの実行フローについては決して話しません....net プログラムがどのように実行されているか。.net exe をクリックすると、exe がどのように実行されるかがわかります。だから私はいくつかの疑問を持っています....可能であれば、上記の問題について詳細に議論するか、正しい記事を教えてください.

OOPS についての疑い

1) プライベートなクラスを見ましたが、コンストラクターはパブリックでした....なぜ...それはどういう意味ですか. クラスがこのように設計されている特別な目的はありますか。

2)パブリッククラスを見ましたが、3つのコンストラクターがあり、1つはプライベート、1つは静的、最後の1つはパブリックでした......この方法でクラスを設計する特別な目的はありますか.

3) 静的クラスには常に静的コンストラクターがありますか?

4)パブリッククラスに静的コンストラクターとともに通常のコンストラクターがある場合、その目的は何ですか。

可能であれば、上記の OOPS の問題について詳しく説明してください........ありがとう

4

1 に答える 1

2

IDE からアプリケーションを実行すると、どのようにコンパイラがシーンに入り、プログラムをコンパイルするか

IDE はコンパイラを起動し、プログラムに渡します。コンパイラは別のプログラムです。特別な呼び出しは必要ありません。直接呼び出すだけで、IDE がなくても自分で実行できますcsc.exe

その後、プログラムがどのように開始されるか....CLRがどのようにシーンに登場し、JITがどのようにシーンに登場するか。プログラムのエントリポイントを制御する人。プログラムのエントリポイント、いわゆる static void Main() を外部から呼び出す人など。CLRがプログラムの実行にどのように責任を負うか、CLRに誰が関与するか。JITがどのように関与し、誰がJITに関与するか。

JIT は動的な IL からネイティブへのコンパイラです。これは、プログラムが実際に実行できるように、.NET 言語がコンパイルされた IL を変換するものです。

CLR は、JIT の使用方法とはまったく別世界です。ここでは詳しく説明しませんが、MSDN で詳細を確認できます。

エントリ ポイントが static void main() である理由

大会。なぜ言語は C# と呼ばれるのですか?

プライベートであるがコンストラクターがパブリックであるクラスを見ました....なぜ...それはどういう意味ですか. クラスがこのように設計されている特別な目的はありますか。

プライベート クラスを外部クラスからインスタンス化できるようにするためです。例えば:

public class A {
    private something = new B();

    private class B {
        public B() {
            // ...
        }
    }
}

コンストラクターが でなかった場合publicprivateクラスは外部クラスによってインスタンス化できませんでした。

私はパブリッククラスを見ましたが、3つのコンストラクターがあり、1つはプライベート、1つは静的、最後の1つはパブリックでした....この方法でクラスを設計する特別な目的はありますか.

もちろん。それらはすべて異なることをします。それほど珍しいことではありません。

静的クラスには常に静的コンストラクターがありますか?

いいえ。静的コンストラクターは実際には非常にまれです。もちろん、静的クラスは通常のコンストラクタを持つことはできません。

パブリック クラスに静的コンストラクターと一緒に通常のコンストラクターがある場合、目的は何でしょうか。

通常のコンストラクターは、オブジェクトを初期化するために呼び出されます。静的コンストラクターは、クラスが初めて使用されるときに呼び出されます。クラスが両方を持っているからといって、それが特別なものになるわけではなく、その機能をほぼ何にでも使用できます。

于 2012-04-25T13:35:51.853 に答える