ホームページ  >  記事  >  バックエンド開発  >  125 の基本的な C# 面接の質問と回答を共有する

125 の基本的な C# 面接の質問と回答を共有する

怪我咯
怪我咯オリジナル
2017-04-07 10:36:292477ブラウズ

以下は、125 の基本的な C# 面接の質問と回答のリストです。これらの面接の質問はシンプルでわかりやすく、C# の最も基本的な概念をカバーしており、そのほとんどは オブジェクト指向の概念に関連しています。したがって、C# 面接の準備をしている場合は、C# の概念を確認するために、これら 125 の基本的な C# 面接の質問と回答をマスターする必要があることをお勧めします。それでは、C# の面接で重要な 125 の質問と回答のリストを見てみましょう。 1. C# とは何ですか?

C# (「C シャープ」と発音) は、従来のオブジェクト指向でタイプセーフな

プログラミング言語

とは異なり、シンプルです。 C および C++ プログラマーはすぐに慣れるでしょう。生産性の高い Rapid Application Development (RAD) 言語が C# で組み合わされています。

2. C# のアノテーションの種類とは何ですか?

C# には 3 つのアノテーション タイプがあります。

単一行 (//)

複数行 (/* */)

ページ/XML コメント (///)。

3. C#.NET ではどのような
名前空間

が使用されますか?

名前空間は、型を論理的にグループ化したものです。 System の使用;

System.Collections.Generic の使用;

System.Windows.Forms の使用;

4. C# の特徴は何ですか?

C# には次の特徴があります:

シンプル

型安全性

柔軟性

オブジェクト指向
互換性
永続性
相互運用性
従来の継承との違い

5. 継承のさまざまなカテゴリは何ですか?

オブジェクト指向プログラミングにおける 4 つのタイプの継承:

単一継承: 基本クラスと派生クラスが含まれます。

階層継承: 基本クラスと、同じ基本クラスから継承する派生クラスが含まれます。

マルチレベル継承: 派生クラスから派生したクラスが含まれます。

多重継承: 複数の基本クラスと 1 つの派生クラスが含まれます。

6. オブジェクト指向プログラミングの基本概念は何ですか?

オブジェクト指向プログラミングで広く使用されているいくつかの概念を理解する必要があります。

オブジェクト

クラス

データの抽象化とカプセル化

継承
ポリモーフィズム
動的バインディング
メッセージの受け渡し。

7. 複数の
インターフェース

を継承できますか?

大丈夫です。 C# では、複数のインターフェイスを継承することができます。

8. 継承とは何ですか?

継承は、既存のクラスから派生した新しいクラスです。

9. 範囲を定義しますか?

スコープは、

変数

にアクセスできるコード内の領域を指します。

10. public、static、void の違いは何ですか?

public: キーワード public はアクセス修飾子で、メイン (Main) メソッドを誰でも呼び出すことができることを C# コンパイラーに伝えるために使用されます。

static: キーワード static は、メイン メソッドがグローバル メソッドであり、クラス インスタンスなしでアクセスできることを示します。コンパイラはメソッドのアドレスをエントリ ポイントとして保存し、この情報を使用してオブジェクトが作成される前にメソッドの実行を開始します。

void: キーワード void は、main メソッドが値を返さないことを示す型修飾子です。

11. C# の修飾子とは何ですか? 12. C# のアクセス修飾子の種類は何ですか?

C# のアクセス修飾子は次のとおりです:

public

protect
private
internal
internalprotect

13. ボックス化とボックス化解除とは何ですか?

変数値型から参照型への暗黙的な変換は、
整数
から

オブジェクト

への

型変換

など、ボックス化されます。

参照型変数を値型に戻す変換はアンボックス化になります。

14. オブジェクトは何ですか?

オブジェクトはクラスのインスタンスです。オブジェクトは新しい操作を使用して作成されます。クラスは、特定のオブジェクトの値と動作 (またはメソッド) に関する情報を含むオブジェクト

をメモリ内に作成します。

15. C# にはどのような種類の

配列 がありますか? 1次元配列(単次元)

多次元配列

(多次元)

ギザギザ配列。

16. オブジェクトとインスタンスの違いは何ですか?

ユーザー定義型のインスタンスはオブジェクトと呼ばれます。クラスから多くのオブジェクトをインスタンス化できます。

オブジェクトはクラスのインスタンスです。

17. デストラクターを定義しますか? デストラクター

を定義しますか?

クラスオブジェクトがスコープ外に出るか、明示的に削除されると、デストラクターが呼び出されます。デストラクターは、その名前が示すように、constructor によって作成されたオブジェクトを破棄するために使用されます。コンストラクターと同様に、デストラクターはクラス メンバー メソッド です。メソッド名はクラス名と同じですが、チルダで始まります。

18. 列挙型の使用方法?

列挙型は、名前を数値に結び付ける方法を提供する別のユーザー定義型であり、それによってコードの理解しやすさが向上します。 enum キーワードは、単語のグループを自動的に列挙し、値 0、1、2 などを割り当てます。

19. コンストラクターを定義しますか?

コンストラクターは、クラスと同じ名前のメンバー メソッドです。コンストラクターは、関連付けられたクラスのオブジェクトが作成されるたびに呼び出されます。クラスのデータ メンバーの値を構築するため、コンストラクターと呼ばれます。

20. カプセル化とは何ですか?

データと機能を 1 つの単位 (クラスと呼ばれる) にパッケージ化することをカプセル化と呼びます。カプセル化には、内部データ構造やコードなどのオブジェクト情報が含まれ、隠蔽されます。

21. C# は多重継承をサポートしていますか?

サポートされていない、それは不可能です。マルチレベルの継承をサポートします。

22.ENUMとは何ですか?

Enum は

定数 を定義するために使用されます。

23.

データセットとは何ですか?

DataSet は、任意のデータ ソースからロードされたデータのメモリ内表現です。

24. プライベートキーワードとパブリックキーワードの違いは何ですか?

プライベート: キーワード private はデフォルトのアクセス レベルであり、他のすべてのアクセス レベルの中で最も制限が厳しくなります。これにより、型または型のメンバーに最小限のアクセス許可が与えられます。プライベート メンバーには、それが宣言されているクラス本体内でのみアクセスできます。

パブリック: キーワード public は、すべてのアクセス レベルの中で最も自由で、アクセス制限はありません。パブリックメンバーは外部からだけでなく内部からもアクセスでき、クラス本体の内部または外部に定義された任意のメンバーに自由にアクセスできます。

25. ポリモーフィズムを定義しますか?

ポリモーフィズムとは、1 つの名前と多数の形式を意味します。これにより、プログラム内で同じ名前を持つ複数のメソッドを定義できるようになります。これにより、操作をオーバーロードして、インスタンスごとに異なる動作をさせることができます。

26. ギザギザ配列とは何ですか?

ギザギザ配列とは、要素が配列である配列です。

ギザギザの配列要素は、異なる次元とサイズを持つことができます。

ジャグ配列は「配列の配列」と呼ばれることもあります。

27. 抽象基本クラスとは何ですか?

抽象クラスは、基本クラスとして機能するために特別に設計されたクラスです。抽象クラスには、少なくとも 1 つの純粋な仮想メソッドもあります。

28. メソッドのオーバーライドと

メソッドのオーバーロードの違いは何ですか?

メソッドをオーバーライドするときは、派生クラス内のメソッドの動作を変更します。オーバーロードされたメソッドには、クラス内の同じ名前の別のメソッドが含まれているだけです。

29. ref パラメータと out パラメータの違いは何ですか?

ref パラメータに渡されるパラメータは、最初に初期化する必要があります。対照的に、out パラメーターの場合、パラメーターが out パラメーターに渡される前に明示的な初期化は必要ありません。

30. C# で using ステートメントを使用するには?

using ステートメントは通常、リソースを取得し、ステートメントを実行してから、リソースを解放します。

31. シリアル化とは何ですか?

シリアル化は、オブジェクトをバイト ストリームに変換するプロセスです。

逆シリアル化は、バイト ストリーム

からオブジェクト を作成する逆のプロセスです。

シリアル化/逆シリアル化は、オブジェクトを渡すためによく使用されます。

32. 構造とクラスの違いは何ですか?

構造体は値型であり、クラスは参照型です。

構造体にはコンストラクターとデストラクターを含めることはできません。

クラスにはコンストラクターとデストラクターの両方を含めることができます。

構造体は継承をサポートしませんが、クラスは継承をサポートします。

33. クラスとインターフェースの違いは何ですか?

クラスはオブジェクトの論理表現です。これは、データ収集と関連するサブプロセスの定義です。

Interface も、メソッド本体が定義されていないメソッドを含むクラスです。クラスは多重継承をサポートしませんが、インターフェイスは多重継承をサポートします。

34. 委任とは何ですか?

デリゲートは、

関数ポインターのタイプセーフなオブジェクト指向実装であり、あるコンポーネントがそれを使用するコンポーネントをコールバックする必要がある多くの状況で使用されます。

35. 認証と認可とは何ですか?

認証はユーザーを識別するプロセスです。認証では、証明書 (ユーザー名とパスワード) を使用してユーザーを識別/検証します。

認証後に認可が行われます。認可は、これらのユーザー ID に基づいてアクセスを許可するプロセスです。

認可により、ユーザーは特定のリソースにアクセスできます。

36. 基本クラスとは何ですか?

クラス宣言では、クラス名にコロンと基本クラス名を追加することで基本クラスを指定できます。基本クラスの仕様を省略すると、オブジェクト クラスから派生することと同じになります。

37. "this" は静的メソッドで使用できますか?

いいえ、「This」は静的メソッドでは使用できません。静的メソッドでは静的変数/メソッドのみを使用できます。

38. 定数、読み取り専用と静的の違いは何ですか?

定数: 値は変更できません。

読み取り専用: 値はクラスのコンストラクターで 1 回だけ初期化されます。

静的: 値は 1 回だけ初期化できます。

39. C# ではどのようなステートメントの種類がサポートされていますか?

C# でサポートされているいくつかの異なるステートメントの種類は、

ブロック ステートメント
宣言ステートメント
式ステートメント
Select ステートメント
反復ステートメント
ジャンプ ステートメント
例外処理ステートメント
チェック済みおよびチェックなし
ロック ステートメント

40 とは何ですか。インターフェースクラス?

これは抽象クラスであり、すべてのパブリック抽象メソッドはその継承クラスに実装する必要があります。

41. 値型と参照型とは何ですか?

値の型はスタックに保存されます。
例: bool、byte、chat、10 進数、double、enum、float、int、long、sbyte、short、strut、uint、ulong、ushort。

参照型はマネージド ヒープに保存されます。
例: クラス、デリゲート、インターフェイス、オブジェクト、文字列。

42. キーワード文字列と System.String クラスの違いは何ですか?

キーワード文字列は、System.String クラスのエイリアスです。したがって、System.String はキーワード文字列と同じであり、任意の命名規則を使用できます。 String クラスは、文字列を安全に作成、操作、比較するためのメソッドを多数提供します。

43. C# で提供される 2 つのデータ型は何ですか?

値型
参照型

44. キャッシュにはどのような種類がありますか?

キャッシュには 3 つのタイプがあります:

出力キャッシュ: asp.net ページの応答情報を保存します。

フラグメントキャッシュ: ページコンテンツの一部のみをキャッシュ/保存します (ユーザーコントロール)。

データ キャッシュ: パフォーマンスを向上させるためにプログラムでオブジェクトをキャッシュします。

45. カスタム コントロールとユーザー コントロールの違いは何ですか?

カスタム コントロールはコンパイルされたコード (DLL) であり、使用は簡単ですが作成は難しく、ツールボックスに配置できます。ドラッグに使用されるコントロール。

プロパティは設計時に直感的に指定できます。複数のアプリケーションで使用できます (共有 DLL の場合)。プライベートであっても、Web アプリケーションの bin ディレクトリにコピーし、参照用に追加して使用できます。通常は、独立したコンシューマ アプリケーションに共通の機能を提供するために使用されます。

ユーザー コントロールと ASP インクルード ファイルは簡単に作成できますが、ボックスに配置してドラッグ アンド ドロップすることはできません。ユーザー コントロールは、個々のアプリケーション ファイル間で共有されます。

46. メソッドとは何ですか?

メソッドは、計算や操作を実装するためにオブジェクトまたはクラスによって実行されるメンバーです。静的メソッドにはクラスを通じてアクセスします。インスタンス メソッドには、クラスのインスタンスを通じてアクセスします。

47. ドメインとは何ですか?

フィールドは、クラスまたはクラスのインスタンスに関連する変数です。

48. イベントとは何ですか?

イベントは、クラスまたはオブジェクトが通知を提供できるようにするメンバーです。イベント宣言はドメイン宣言に似ていますが、宣言にイベント キーワードが含まれており、型がデリゲート型である必要がある点が異なります。

49. テキストとその種類とは何ですか?

テキストは、プログラムが変数に割り当てる値定数です。 C# でサポートされているテキスト型には、

整数リテラル、
実数リテラル、
ブール型リテラル、
文字列リテラル、
バックスラッシュ文字リテラル)

50 があります。

値の型はスタックに保存され、ある変数の値を別の変数に割り当てます。

参照型はマネージド ヒープに保存され、2 つの参照変数間の代入です。

51. C# にはどのような機能がありますか?

C# は、エンタープライズ アプリケーションを作成するためのシンプルかつ強力なプログラミング言語です。

C++ と VB の混合物です。ステートメント、式、演算子などの多くの C++ 機能を保持し、それらを VB の生産性と組み合わせます。

C# を使用すると、開発者はネットワーク サービスを簡単に構築でき、あらゆる言語とプラットフォームを通じてインターネットにアクセスできます。

C# は、開発者がより少ないコードで開発を完了できるようにするため、コード内のエラーが少なくなります。

C# は、タイプ セーフティ、バージョン管理、イベント、ガベージ コレクションなどの分野で大幅な改善と革新を導入しました。

52. エラーにはどのような種類がありますか?

構文エラー

ロジックエラー
実行時エラー

53. Break ステートメントと continue ステートメントの違いは何ですか?

break ステートメントは、現在閉じている

ループ またはそれが含まれる条件ステートメントを終了するために使用されます。 switch ステートメント から飛び出すために、break ステートメントを使用しました。

continue ステートメントは実行順序を変更するために使用されます。 Break ステートメントのようなループから抜け出すのとは対照的に、Continue ステートメントは現在の反復を停止し、制御をループの先頭に戻すだけです。

54. 名前空間を定義しますか?

名前空間はコンテナと呼ばれ、階層的な .NET クラスを編成するために使用されます。

55. コードグループとは何ですか?

コード グループは、セキュリティ コンテキストを共有するパッケージのグループです。

56. C# のシールド クラスとは何ですか?

sealed 修飾子は、クラスからの派生を防ぐために使用されます。シールされたクラスが別のクラスの基本クラスとして指定されている場合、コンパイル時エラーが発生します。

57. 静的メソッドとインスタンスメソッドの違いは何ですか?

static 修飾子を使用して宣言されたメソッドは静的メソッドです。静的メソッドは特定のインスタンスでは動作せず、静的メンバーのみがアクセスできます。

static 修飾子を使用して宣言されていないメソッドはインスタンス メソッドです。インスタンス メソッドは特定のインスタンス上で動作し、静的メンバーとインスタンス メンバーによってアクセスできます。このようにインスタンスメソッドを呼び出したインスタンスに明示的にアクセスすることができます。これを静的メソッドで呼び出すのは間違っています。

58. C# にはどのような種類の変数がありますか?

C# のさまざまな変数の型は次のとおりです:

静的変数
インスタンス変数
値パラメータ
参照パラメータ
配列要素
出力パラメータ (出力パラメータ)
ローカル変数

59. メソッドのオーバーロードとは何を意味しますか?

メソッドのオーバーロードでは、一意のシグネチャがある限り、同じクラス内の複数のメソッドが同じ名前を持つことができます。オーバーロードされたメソッドの呼び出しをコンパイルするとき、コンパイラーはオーバーロード解決を使用して、どのメソッドを呼び出すかを決定します。

60. パラメーターとは何ですか?

パラメータは、値または変数参照をメソッドに渡すために使用されます。メソッドのパラメータは、メソッドの呼び出し時に指定されたパラメータから実際の値を取得します。パラメータには、値パラメータ、参照パラメータ、出力パラメータ、パラメータ配列の 4 種類があります。

61. C# はオブジェクト指向言語ですか?

はい、C# は従来の Java や C++ と同様のオブジェクト指向言語です。

62. 配列と配列リストの違いは何ですか?

配列は同じ型のコレクションです。配列のサイズは宣言時に固定されます。リンク リストは配列に似ていますが、固定サイズではありません。

63. C# の特殊演算子とは何ですか?

C# はいくつかの特殊な演算子をサポートしています。

is (関係演算子)
as (関係演算子)
typeof (型演算子)
sizeof (アンマネージクラスのサイズを取得するために使用されるサイズ演算子)
new (オブジェクト演算子)
.dot (メンバー Access 演算子)
checked (オーバーフロー チェック)
チェックされていませんか? (オーバーフロー チェックを防止)

64. C# の演算子の意味は何ですか?

演算子は、クラス インスタンスに適用される特定の演算式の意味を定義するメンバーです。単項演算子、二項演算子、変換演算子の 3 種類の演算子を定義できます。すべての演算子はパブリックかつ静的に宣言する必要があります。

65. 型パラメータ化とは何ですか?

型のパラメータ化は、別の値または型の上に型をパラメータ化することです。

66. 抽象クラスの特徴は何ですか?

抽象クラスを強力にすることはできません。抽象クラスで new 演算子を使用するのは間違っています。

抽象クラスには、抽象メソッドとエントリを含めることができます (ただし、必須ではありません)。

抽象クラスは、scaled 修飾子を使用できません。

67. 抽象的なキーワードを使用するには?

修飾子abstractは、クラス自体がインスタンスやオブジェクトを直接持つことができず、他のクラスの「基本クラス」にしかならないことを示すためにクラスに使用されるキーワードです。

68. goto文の使い方は?

goto ステートメントは引き続き C# 言語に含まれています。この goto を使用すると、ループの内側から外側にジャンプできます。ただし、ループの外側からループに飛び込むことは許可されません。

69. コンソールアプリケーションとウィンドウアプリケーションの違いは何ですか?

ユーザーインターフェイスなしでコマンドラインから実行するように設計されたコンソールアプリケーション。
ウィンドウ アプリケーションは、ユーザー インターフェイスを通じてユーザーのデスクトップ上で実行されるように設計されています。

70. return ステートメントの使い方は?

return ステートメントはプログラム (メソッドまたは関数) に関連しています。 return ステートメントが実行されると、システムは呼び出されたプログラムから呼び出したプログラムに制御を移します。 return ステートメントは 2 つの目的で使用されます:

現在実行中のコードの呼び出し元に即座に戻る

現在実行中のコードの呼び出し元に何らかの値を返す。

71. 配列とリンクリストの違いは何ですか?

配列は、互いの要素の位置を気にしない単純な数値のシーケンスです。それらの位置は互いに独立しています。配列要素の追加、削除、変更は非常に簡単です。配列と比較すると、リンク リストは複雑な数値のシーケンスです。

72. C# には throws 句がありますか?

いいえ、Java とは異なり、C# では開発者がメソッドがスローできる例外を指定する必要はありません。

73. C# は可変数のパラメーターをサポートしていますか?

はい、params キーワードを使用します。パラメータは、特定のタイプのパラメータ リストとして指定されます。

74. プライベート仮想メソッドはオーバーライドできますか?

いいえ、プライベート メソッドにはクラスの外部からアクセスできません。

75. マルチキャスト委任とは何ですか?

各デリゲート オブジェクトは、個別のメソッドへの参照を保持します。ただし、デリゲート オブジェクトが複数のメソッドへの参照を保持し、それらを呼び出すことは可能です。このようなデリゲート オブジェクトは、マルチキャスト デリゲートまたは複合デリゲートになります。

76. C# のユニークな機能は何ですか?

XML ドキュメント。

77. C# では例外の使用が推奨されていますか?

はい、例外は .NETFramework で推奨される エラー処理 メカニズムです。

78. switch ステートメントの Break ステートメントは何をしますか?

break ステートメントは、そのステートメントが含まれるループを終了します。また、プログラムの実行フローも変わります。

switch ステートメントでは、case ステートメントの最後に Break ステートメントが使用されます。 C# では、break ステートメントは必須であり、ある case ステートメントが別の case ステートメントに流れ込むのを防ぎます。

79. C# はオブジェクト指向ですか?

はい、C# は従来の Java や C++ と同様のオブジェクト指向言語です。

80. スマートナビゲーションとは何ですか?

サーバー側の検証とページの更新により、ページが更新されてもカーソルの位置は変化しません。

81.CONST と READONLY の違いは何ですか?

重要なのは定数値を定義することです。 const フィールドは、フィールドが宣言された場合にのみ初期化できます。読み取り専用フィールドは、宣言時またはコンストラクターで定義できます。

82. C# には throws 句がありますか?

いいえ、Java とは異なり、C# では開発者がメソッドがスローできる例外を指定する必要はありません (または許可することさえありません)。

83. メソッドをオーバーロードするにはどのような方法がありますか?

異なるパラメータのタイプ、異なるパラメータの数、異なるパラメータの順序。

84. イベントには戻り値がありますか?

いいえ、イベントには戻り値の型がありません。

85. イベントとは何ですか?

イベントとは、別のプログラムメソッドに基づいて実行されるアクションです。

イベントは、発生したイベントを他のオブジェクトに通知するためにオブジェクトまたはクラスによって使用されるデリゲート タイプのクラス メンバーです。

イベントは、event キーワードを通じて宣言できます。

86. 識別子とは何ですか?

識別子は、プログラム内のさまざまなエンティティを一意に識別するために使用される名前です。

87. C# のさまざまなテキスト型とは何ですか?

ブール値: True と False はブール型で、それぞれ true と false の状態にマップされます。

Integer: Int、uInt、long、ulong 型の値を書き込むために使用されます。

実数: float、double、および 10 進数タイプの値を書き込むために使用されます。

文字: 単一の文字を表し、通常は「a」などの引用符で囲まれた文字で構成されます。

文字列: C# は、通常の文字列とリテラル文字列の 2 種類の文字列をサポートします。ルール文字列は、「116110」のように、二重引用符で囲まれた 0 個以上の文字で構成されます。リテラル文字列は、@"hello" のように、@ 文字の後に二重引用符で囲まれた文字で構成されます。

Null: null 型を表します。

88. データのカプセル化とは何ですか?

データのカプセル化は、データ隠蔽とも呼ばれ、クラスの実装の詳細をユーザーから隠しておくためのメカニズムです。ユーザーは、メソッドと呼ばれる特別な関数を実行することによって、非表示のメンバーを持つクラスに対して限られた一連の操作のみを実行できます。

89. プライベート仮想メソッドはオーバーライドできますか?

いいえ、プライベート メソッドにはクラスの外部からアクセスできません。

90. サブルーチンと関数の主な違いは何ですか?

サブルーチンには戻り値がありませんが、関数には戻り値があります。

91. C# と C++ の違いは何ですか?

C# は #include ステートメントをサポートしていません。 using ステートメントのみを使用します。

C# では、クラス定義の末尾にセミコロンを使用しません。

C# は多重継承をサポートしていません。

データ型の明示的な変換は、C++ よりも C# の方がはるかに安全です。

C# の Switch は文字列値にも使用できます。

コマンドライン引数の配列の動作は、C# と C++ では異なります。

92. ネストされたクラスとは何ですか?

ネストされたクラスは、クラス内のクラスです。

ネストされたクラスとは、宣言が別のクラスまたはインターフェイス内で発生するクラスです。

93. 静的コンストラクター関数パラメータを与えることができますか?

いいえ、静的コンストラクターはパラメーターを持つことができません。

94. C# では、文字列は値型ですか、それとも参照型ですか?

文字列はオブジェクト (参照型) です。

95. C# にはコピー コンストラクターが用意されていますか?

いいえ、C# にはコピー コンストラクターがありません。

96. クラスまたは構造体は複数のコンストラクターを持つことができますか?

はい、クラスまたは構造体には複数のコンストラクターを含めることができます。 C# ではコンストラクターをオーバーロードできます。

97. インターフェースのインスタンスを作成できますか?

いいえ、インターフェースのインスタンスを作成することはできません。

98. インターフェースにフィールドを含めることはできますか?

いいえ、インターフェイスにフィールドを含めることはできません。

99. クラスは静的コンストラクターを持つことができますか?

はい、クラスには静的コンストラクターを含めることができます。静的コンストラクターは、静的フィールドがアクセスされる直前に自動的に呼び出され、通常は静的クラス メンバーを初期化するために使用されます。最初のインスタンスが作成される前、または静的メンバーが参照される前に、自動的に呼び出されます。静的コンストラクターはインスタンス コンストラクターの前に呼び出されます。以下に例を示します。

100. C# における委任の主な機能は何ですか?

デリゲートは主にコールバック メソッドを定義するために使用されます。

101. シャドウイングとオーバーライドの違いは何ですか?

オーバーライドは実装のみを再定義しますが、投影は要素全体を再定義します。

派生クラスをオーバーライドすると、「ME」キーワードを通じて親クラス要素を参照できますが、プロジェクションでは「MYBASE」を通じて親クラス要素にアクセスできます。

102. イベントはアクセス修飾子を使用できますか?

はい、イベントでアクセス修飾子を使用できます。イベントで portected キーワードを使用すると、継承クラスのみがイベントにアクセスできるようにすることができます。 private を使用してイベントを装飾し、現在のクラスのオブジェクトのみがイベントにアクセスできるようにすることができます。

103. コードで virtual キーワードを使用するのはなぜですか?

コード内の Virtual キーワードは、派生クラスでオーバーライドできるメソッドとプロパティを定義するために使用されます。

104. コンストラクターとデストラクターとは何ですか?

コンストラクターとデストラクターは特別なメソッドです。

コンストラクターとデストラクターは、各クラスの特別なメソッドです。

各クラスには独自のコンストラクターとデストラクターがあり、クラス インスタンスが作成または破棄されるときに自動的に呼び出されます。

クラスにアクセスするたびに、コンストラクターはすべてのクラス メンバーを初期化します。デストラクターは、オブジェクトが不要になったときにオブジェクトを破棄します。

105. Finalize メソッドを抑制するにはどうすればよいですか?

GC.SuppressFinalize()。

106. C# は可変数のパラメーターをサポートしていますか?

はい、params キーワードを使用します。

パラメータは、int などの特定の型のパラメータ リストとして指定されます。柔軟性を最大限に高めるために、型をオブジェクトにすることができます。

このメソッドの標準的な使用例は System.console.writeLine() です。

107. スレッドを開始するにはどのメソッドが使用されますか?
始めます。

108. ジェネリック医薬品とは何ですか?

ジェネリックは、柔軟で厳密に型指定されたコレクションを作成するのに役立ちます。

ジェネリックは基本的にロジックをデータ型から分離して、再利用性や保守性などを向上させます。

109. ポリモーフィズム にはどのような種類がありますか?

ポリモーフィズムには 2 つのタイプがあります:

コンパイル時ポリモーフィズム

実行時ポリモーフィズム

110 コンパイル時ポリモーフィズムと実行時ポリモーフィズムの違いは何ですか?

コンパイル時ポリモーフィズム

コンパイル時ポリモーフィズムは、メソッドのオーバーロードとも呼ばれます。

メソッドのオーバーロードとは、名前は同じだがシグネチャが異なる 2 つ以上のメソッドがあることを指します。

実行時ポリモーフィズム

実行時ポリモーフィズムは、メソッド オーバーライドとも呼ばれます。

メソッドのオーバーライドとは、同じ名前のメソッドが 2 つ以上あり、それらのメソッドには同じメソッド シグネチャが含まれていますが、異なる実装に対応していることを意味します。

111. XML でのマルチスレッド プログラミングを可能にする名前空間はどれですか?

システム.スレッディング。

112. C# で静的ブロックを宣言できますか?

いいえ、C# は静的ブロックをサポートしていませんが、静的メソッドはサポートしているためです。

113. メソッドをシール済みとして宣言できますか?

C# ではメソッドをシールして宣言することはできません。ただし、派生クラスのメソッドをオーバーライドする場合は、オーバーライドされたメソッドをシールされたメソッドとして定義できます。シールすることで、このメソッドがさらにオーバーライドされるのを避けることができます。

114. C# で属性を実装するにはどのようなコマンドが使用されますか?

C# は get および set 修飾子を使用してプロパティを実装します。

115. 静的メンバーとは何ですか?

静的メンバーとして定義されているため、クラス インスタンスからではなくクラス レベルから直接呼び出すことができます。

116. C# でクラスを継承するための構文は何ですか?

クラスが別のクラスから派生すると、基本クラスのメンバーが派生メンバーになります。

基本クラスのメンバーにアクセスするために使用されるアクセス修飾子は、派生クラスの基本クラス メンバーのアクセス ステータスを指定します。

C# で別のクラスからクラスを継承するための構文は次のとおりです:

class MyNewClass : MyBaseClass

117 C# の while ループと do while ループの基本的な違いは何ですか?

while ループは最初にその条件をテストします。つまり、条件が true と評価された場合、それを囲んでいるステートメントのブロックが 0 回以上実行されます。 do while ループはステートメント ブロックを少なくとも 1 回繰り返し、最後に条件をチェックします。

118. サブルーチンと関数の主な違いは何ですか?

サブルーチンには戻り値がありませんが、関数には戻り値があります。

119. C# のシールド クラスとは何ですか?

sealed 修飾子は、クラスからの派生を防ぐために使用されます。シールされたクラスが別のクラスの基本クラスとして指定されている場合、コンパイル時エラーが発生します。

120. クラスとインターフェースの違いは何ですか?

抽象クラスはそのメンバーの一部を実装できますが、インターフェイスはそのメンバーのいずれも実装できません。

インターフェースはフィールドを持つことができませんが、抽象クラスはフィールドを持つことができます。

インターフェイスは別のインターフェイスからのみ継承でき、抽象クラスからは継承できませんが、抽象クラスは別の抽象クラスまたは別のインターフェイスから継承できます。

クラスは同時に複数のインターフェースを継承できますが、クラスは同時に複数のクラスを継承することはできません。

抽象クラスのメンバーはアクセス修飾子を定義できますが、インターフェイスのメンバーはアクセス修飾子を定義できません。

121. 抽象メソッドと仮想メソッドの違いは何ですか?

抽象メソッドは実装を提供せず、(派生クラスも抽象クラスでない限り) 派生クラスにメソッドのオーバーライドを強制しますが、仮想メソッドは実装を持つことができ、派生クラスでのオーバーライドはオプションです。したがって、仮想メソッドを実装して、派生クラスによるオーバーライドのオプションを提供できます。抽象メソッドは実装を提供できず、派生クラスにメソッドを強制的にオーバーライドさせます。

122. 静的メソッドとは何ですか?

インスタンス データや他のインスタンス メソッドへのアクセスを試行しない限り、メソッドを static に宣言することができます。

123. 新しい修飾子とは何ですか?

新しい修飾子は、基本クラスのメンバーを非表示にします。 C# では署名の非表示のみがサポートされています。

124. C# でプロパティを取得および設定する利点は何ですか?

get プロパティ アクセサーは、プロパティ値を返すために使用されます。

set プロパティ アクセサーは、新しい値を設定するために使用されます。

125. const と readonly の違いは何ですか?

Const 宣言されたフィールドでは static 修飾子を使用できませんが、readonly では static 修飾子を使用できます。

const フィールドは宣言時にのみ初期化できますが、readonly は宣言時またはコンストラクター内で初期化できます。

const フィールドの値は設計時に計算され、readonly の値は実行時に計算されます。

以上が125 の基本的な C# 面接の質問と回答を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。