ホームページ > バックエンド開発 > C#.Net チュートリアル > 混同されやすい C#.net の共通知識ポイント

混同されやすい C#.net の共通知識ポイント

巴扎黑
リリース: 2016-12-19 16:44:10
オリジナル
1785 人が閲覧しました

1. .NET のクラスと構造体の違いを教えてください。
回答: 構造体とクラスには一般的な構文がありますが、構造体にはクラスよりも多くの制限があります。構造体のコピーがコンパイラーによって作成および破棄されるため、構造体はデフォルトのコンストラクターを宣言できません。そのため、デフォルトのコンストラクターとデストラクターは必要ありません。構造体は値型であるため、構造体変数を変更しても元の値には影響しませんが、クラスはアプリケーション型であり、変数の値を変更すると元の値も変更されます。構造体を宣言するには Struck キーワードを使用し、クラスを宣言するには class キーワードを使用します。構造体をメソッドに渡す場合、構造体は参照ではなく値によって渡されます。クラスとは異なり、構造体は New キーワードを使用せずにインスタンス化できます。クラスはインターフェイスを実装できます。
2. デッドロックの必要条件は何ですか?それを克服するにはどうすればよいでしょうか?
回答: システムにリソースが不足しており、プロセスの進行順序が不適切であり、リソースは一度に 1 つのプロセスしか使用できません。リソースが要求されると、その時点でリソースはブロックされます。 、取得したリソースは使用できません。プロセスがリソースを取得した場合、使い果たされる前にそのリソースを強制的に剥奪することはできません。
3. インターフェイスはインターフェイスを継承できますか?抽象クラスはインターフェイスを実装できますか?抽象クラスはエンティティ クラスから継承できますか?
回答: インターフェイスはインターフェイスを継承でき、抽象クラスはインターフェイスを実装でき、抽象クラスはエンティティ クラスを継承できます。ただし、エンティティ クラスには明確なコンストラクターが必要であるという条件があります。
4. コンストラクターは継承できますか?オーバーライドできますか?
回答: コンストラクターは継承できないため、オーバーライドすることはできませんが (オーバーロード)、String クラスを継承することはできます。
回答: String クラスは最終クラスであるため、string クラスを継承できません。
5. スレッドがオブジェクトのメソッドに入るとき、他のスレッドはオブジェクトのメソッドに入ることができますか?
回答: いいえ、オブジェクトのメソッドには 1 つのスレッドからのみアクセスできます。
6. 8 に等しいものを計算する最も効果的な方法を使用しますか?
答え: 27. C# はメモリを直接操作できますか?
答え: この質問は答えるのが難しく、大きな質問でもあります。しかし、このような質問をすることはできます。 C# ではメモリを直接操作することができますが、ポインタを使用する場合は、プログラマの代わりに unsafe を追加する必要があります。ただし、C# では、finalize メソッドを直接使用することはできません。代わりに、デストラクターで基本クラスの Finalize() メソッドを呼び出します。
7. 配列には Length() メソッドがありますか? stringにはこのメソッドがありますか?
答え: 配列にはそのようなメソッドはありませんが、この属性はあり、文字列にはこのメソッドがあります。
8. エラーと例外の違いは何ですか?
答え: エラーは、回復が不可能ではないが、非常に困難であることを意味します。例外は、プログラムが正常に実行できないことを意味します。
9.final、finalize、finalizeの違いについて話してください。
回答: Final は属性、メソッド、クラスを宣言するために使用され、属性は不変であり、メソッドはオーバーライドできず、クラスは継承できないことを示します。
最後は、常に実行される例外処理ステートメント構造の一部です。
Finallize はオブジェクト クラスのメソッドを表し、ガベージ コレクション メカニズムで実行されると、リサイクルされたオブジェクトのメソッドが呼び出されます。
10, HashMap と Hashtable の違いは何ですか?
答え: HashMap は Hashtable の軽量実装です。非スレッドセーフ実装はすべてマップ インターフェイスを実装します。主な違いは、HashMap キー値が空または null にできること、および Hashtable よりも効率が高いことです。
11. コレクションとコレクションの違いは何ですか?
回答: Collection は **** クラスの優れたインターフェイスです。Collections は **** クラスのヘルパー クラスであり、さまざまな ** の検索、並べ替え、スレッド セーフを実装するための一連の静的メソッドを提供します。 ** クラスが動作します。
12. C# の委任とは何ですか?イベントはコミッションですか?
回答: デリゲートは関数ポインターと同様に安全なメソッドですが、メソッドをパラメーターとして別のメソッドに渡すことができ、関数への参照として理解できます。イベントはメッセージ メカニズムであり、一種の委任であり、委任にはメソッド本体がありません。
13. オーバーライドとオーバーロードの違いは何ですか?
回答: オーバーライドとは、基本クラスのメソッドをオーバーライドすることを意味し、メソッド名、戻り値の型、パラメーターの型、およびパラメーターの数は基本クラスと同じである必要があります。
オーバーロードはオーバーロードを意味しますが、基本クラスのメソッドをオーバーライドすることも意味しますが、メソッド名が同じであれば、他のものはすべて異なっていても構いません。
14. BS構造で変数値を転送する必要がある場合、セッション、クール、アプリケーションは使用できません。どのようなメソッドがありますか?
回答: this.server.Transfer,Querystring
15. C# インデクサー実装プロセスは数値に基づいてのみインデックス付けできますか?
回答: いいえ、どのタイプでも構いません。
15. C# インデクサーの実装プロセスは数値インデックスのみに基づいて行うことができますか?
回答: いいえ、どのタイプでも構いません。
16. 新しいの使い方は?
答え: 3 つのタイプがあります。最初のタイプは次のようなインスタンス化です: New Class()
2 つ目は、public new が基本クラスのメソッドを非表示にすることです。3 つ目は、ジェネリック クラス宣言内の型パラメーターには引数のない public コンストラクターが必要であることです。
17. 配列を配列リストにコピーするには?
答え: Foreach (配列内のオブジェクト)、ArrayList.Add (0)
中国語のメソッドはたくさんあります。自分自身で考えてください。
18、反省と連載の概要は?
答え: 考察: エミッションの定義を与えるのはまだ難しいです。まず私の理解を話させてください。リフレクションは、カプセル化アセンブリ、モジュール、型オブジェクトを提供します。リフレクションを使用すると、型のインスタンスを動的に作成したり、型を既存のオブジェクトにバインドしたり、既存のオブジェクト型から型を取得したりして、その型のメソッドを呼び出したり、フィールドや属性にアクセスしたりできます。
シリアル化: オブジェクトを別のメディア経由で送信できる形式に変換するプロセス。たとえば、オブジェクトをシリアル化し、HTTP を使用してインターネットを介してクライアントとサーバー間でオブジェクトを転送し、逆シリアル化を使用して相手側のストリームからオブジェクトを取得します。
19、Const と ReadOnly?
回答: Const はプログラミング中に定数を宣言するために使用され、ReadOnly は実行時定数を宣言するために使用されます。
20. UDP 接続と TCP 接続の類似点と相違点は何ですか?
回答: TCP は、接続指向で信頼性の高いバイト ストリーム サービスを提供します。ユーザーとサーバーが相互に通信するときは、データを送信する前に TCP 接続を確立する必要があります。 TCP はタイムアウト リダイヤル機能とデータ検証機能を提供します。 UDP はユーザー データグラム プロトコルであり、単純なデータグラム指向の送信プロトコルであり、信頼性の低い接続です。
21. プロセスとスレッドをそれぞれ理解するにはどうすればよいですか?
答え: プロセスは、スレッドよりも大きいプログラム実行単位であり、プログラム内に少なくとも 1 つのプロセスが存在し、プロセス内に少なくとも 1 つのスレッドが存在する必要があります。スレッドの規模はプロセスより小さい必要があります。プロセスは独立したメモリ単位を持ち、スレッドは共有メモリであるため、同じプロセス内の複数のスレッドを同時に実行できます。
22、ASP。 NETページ?
答え: QueryString、session、cookie、application、server.Transfer、respose.redictor
41. アプリケーション ドメインとは何ですか?マネージコードとは何ですか?強く型付けされたシステムとは何ですか?ボックス化とアンボックス化とは何ですか?過負荷とは何ですか? CTS、CLS、CLR についてはどのような説明がありますか?
回答: アプリケーション ドメイン: セキュリティ、信頼性、分離、バージョン管理、およびアンインストールのために提供される分離境界です。通常、アプリケーション ドメインはランタイム ホストによって作成され、より安全で汎用性の高い処理ユニットを提供します。
マネージド コード: CLR コンパイル言語エディターを使用して開発および記述されたコードは、マネージド コードと呼ばれます。
ボックス化とアンボックス化: 値型を参照型に変換するプロセスであり、これは暗黙的ですが、反対のプロセスはアンボックス化であり、明示的です。
CTS は共通型システム、CLS は共通言語仕様、CLR は共通言語ランタイムです。
強力な型システム: すべての変数とオブジェクトには宣言された型が必要です。
41.値型と参照型の違いは何ですか?
答え: 値の型はスタックに保存され、その値を変更しても変数の元の値は変更されません。参照されたアドレスはその値を変更します。変数の元の値も変更されます。値型に null 値を含めることはできませんが、null 許容型では値型 l に null を割り当てることができます。
42. ASP.net の認証方法は何ですか?
答え: 窓口、書類、パスポート
43. UDDIとWSDLの意味と機能を説明してください。
回答: UDDI は、Web サービスによって提供される情報登録のための Web ベースの分散実装標準のセットであり、他の企業がプロトコルを検出してアクセスできるようにするために、企業自体に提供される Web サービスも登録します。規格。サービスを記述および検出するための標準ベースの仕様と、インターネットベースの実装のセットを提供します。
WSDL は、WEB サービスを記述するための XML ベースのインターフェイスです。
44.石鹸とは何ですか?
答え: シンプルアクセスプロトコルです。分散環境で情報を交換し、リモート呼び出しを実装するためのプロトコルです。これは XML ベースのプロトコルです。 SOAP を使用すると、トランスポート プロトコル (通常は HTTP プロトコル) に関係なく、あらゆるタイプのオブジェクトまたはコードがあらゆるプラットフォームおよび言語で相互に通信できるようになります。軽量なプロトコルです。
45. ASP.net ページを展開するにはどうすればよいですか?
回答: vs2003 には公開メカニズムがあり、vs2003 を公開してコピーしてデプロイできます。
Vs2005 は、対応する場所に直接展開できます。
46. .net のガベージ コレクション メカニズムを理解するにはどうすればよいですか?
回答: .NET のガベージ コレクション メカニズムは、参照プログラムによるメモリのリサイクルと解放を指します。 new キーワードを使用してオブジェクトが作成されるたびに、ランタイム ライブラリはマネージド ヒープからそのオブジェクトにメモリを割り当てる必要があります。これは、領域が限られており、ガベージ コレクション メカニズムが最終的に未使用のメモリを再利用する必要があるためです。メモリが解放され、再利用されます。
47.オブジェクト指向の 3 つの基本原則とは何ですか?
答え: カプセル化、継承、ポリモーフィズム。
48. .NET のすべてのクラスの基本クラスは何ですか?
答え: 反対です。
50. foreach を使用して走査およびアクセスできるオブジェクトを実装する必要がありますか?
回答: IEnumerable インターフェイスと GetEnumerator() メソッドを実装する必要があります。
51.ヒープとスタックの違いは何ですか?
回答: ヒープは、手動操作によって割り当ておよび解放される、大きな空き記憶領域です。
スタックはオペレーティングシステムによって自動的に割り当てられ、解放されるスタックです。スタック上のスペースは限られています。プログラムのコンパイル中に、変数と関数へのメモリ割り当てがスタック上で実行され、実行時の関数呼び出し中のパラメータの受け渡しもスタック上で実行されます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート