経験者と新入生のためのトップ50のC#インタビューの質問と回答(2021年更新)
C# は、オブジェクト指向プログラミング、静的型付け、コンポーネント指向プログラミング、強力な型付けなどのさまざまな分野を網羅する汎用プログラミング言語です。C# は、Web サイト、Web アプリケーション、およびゲームを作成するための ASP.NET フレームワークで広く使用されています。 C# プログラミングの機会は世界中にあります。 C# プログラミングでキャリアを築こうと考えている場合は、以下にリストされている C# の基本から C# のトリッキーな面接の質問と回答をいくつか聞かれる面接をクラックする必要があります。
これは、インタビュー中に尋ねられる可能性が高い C# インタビューの質問と回答の厳選されたリストです。候補者は、経験やその他のさまざまな要因に応じて、基本的な C# 面接の質問から高度な C# 面接の質問までを求められる可能性があります。このリストには、初心者向けの C シャープ インタビューの質問と、経験豊富な専門家向けの C# インタビューの質問がすべて含まれています。
PDF の無料ダウンロード:C# インタビュー インタビューの質問
新入生および 2/3/5/10 年の経験者向けの C# インタビューの質問と回答
ここでは、新入生だけでなく、経験豊富な C# 開発者の候補者が適切な仕事を得るために、面接でよくある質問をいくつか紹介します。
50 以上の基本から高度な C# インタビューのよくある質問と回答を取り上げました
新入生向けの C# の基本的な面接の質問
- C# とは?
- 例を挙げて C# のコメントの種類を説明する
- 複数の catch ブロックを実行できますか?
- public、static、void の違いは何ですか?
- オブジェクトとは?
- コンストラクタを定義する
- ジャグ配列とは
- ref パラメータと out パラメータの違いは何ですか?
- C# での「using」ステートメントの用途は何ですか?
- 連載とは
1. C# とは?
C# は、Microsoft 中間言語を生成するために .Net フレームワークによってコンパイルされる、オブジェクト指向でタイプ セーフなマネージ言語です。
2. C# のコメントの種類を例を挙げて説明
一行
例:
//This is a single line comment
ii.複数行 (/* */)
例:
/*This is a multiple line comment We are in line 2 Last line of comment*/
iii. XML コメント (///)。
例:
/// summary; /// Set error message for multilingual language. /// summary
3.複数の catch ブロックを実行できますか?
いいえ、同じ種類の複数の catch ブロックを実行することはできません。適切な catch コードが実行されると、制御は finally ブロックに移され、finally ブロックに続くコードが実行されます。
4. public、static、void の違いは何ですか?
パブリックに宣言された変数またはメソッドは、アプリケーションのどこからでもアクセスできます。静的に宣言された変数またはメソッドは、クラスのインスタンスを作成しなくてもグローバルにアクセスできます。静的メンバーは、デフォルトではグローバルにアクセスできません。使用される変更されたアクセスのタイプによって異なります。コンパイラは、メソッドのアドレスをエントリ ポイントとして格納し、この情報を使用して、オブジェクトが作成される前に実行を開始します。 Void は、メソッドまたは変数が値を返さないことを示す型修飾子です。
5.オブジェクトとは
<センター>
<図>
C# のオブジェクト
フィギュア>センター>
オブジェクトは、そのクラスのメソッドにアクセスするためのクラスのインスタンスです。 「New」キーワードは、オブジェクトを作成するために使用されます。メモリ内にオブジェクトを作成するクラスには、そのクラスのメソッド、変数、および動作に関する情報が含まれます。
6.コンストラクターの定義
コンストラクターは、そのクラスと同じ名前を持つクラスのメンバー関数です。コンストラクターは、オブジェクト クラスが作成されるたびに自動的に呼び出されます。クラスの初期化中に、データ メンバーの値を構築します。
7.ジャグ配列とは
配列型の要素を持つ配列をジャグ配列と呼びます。要素は、さまざまな寸法とサイズにすることができます。配列の配列としてジャグ配列を呼び出すこともできます。
8. ref パラメーターと out パラメーターの違いは何ですか?
ref として渡される引数はメソッドに渡す前に初期化する必要がありますが、out パラメーターはメソッドに渡す前に初期化する必要はありません。
9. C# での「using」ステートメントの用途は何ですか?
「using」ブロックは、リソースを取得して処理し、ブロックの実行が完了すると自動的に破棄するために使用されます。
10.シリアル化とは
ネットワークを介してオブジェクトを転送する場合、オブジェクトをバイト ストリームに変換する必要があります。オブジェクトをバイト ストリームに変換するプロセスは、シリアル化と呼ばれます。オブジェクトをシリアライズ可能にするには、ISerialize インターフェイスを実装する必要があります。逆シリアル化は、バイト ストリームからオブジェクトを作成する逆のプロセスです。
11.静的メソッド内で「this」コマンドを使用できますか?
静的メソッドでは静的変数/メソッドしか使用できないため、静的メソッドでは「This」を使用できません。
12.定数と読み取り専用の違いは何ですか?
定数変数は、コンパイル時に宣言および初期化されます。後で値を変更することはできません。読み取り専用は、実行時に値を割り当てたい場合にのみ使用されます。
3 年、5 年、10 年の経験を持つ C# の高度な面接の質問
13.インターフェイスクラスとは?その一例を挙げてください
インターフェイスは、パブリック抽象メソッドのみを持つ抽象クラスであり、メソッドには宣言のみがあり、定義はありません。これらの抽象メソッドは、継承されたクラスで実装する必要があります。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { interface Guru99Interface { void SetTutorial(int pID, string pName); String GetTutorial(); } class Guru99Tutorial : Guru99Interface { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID, string pName) { TutorialID = pID; TutorialName = pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Guru99Tutorial pTutor = new Guru99Tutorial(); pTutor.SetTutorial(1,".Net by Guru99"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
14.値型と参照型とは?
値型は、独自のメモリ空間内にデータ値を保持します。例
int a = 30;
参照型は、値が格納されているオブジェクトのアドレスを格納します。別のメモリ位置へのポインタです。
string b = "Hello Guru99!!";
15.カスタム コントロールとユーザー コントロールとは
カスタム コントロールは、コンパイルされたコード (DLL) として生成されるコントロールであり、使いやすく、ツールボックスに追加できます。開発者は、コントロールを Web フォームにドラッグ アンド ドロップできます。属性は、設計時に使用できます。カスタム コントロールを複数のアプリケーションに簡単に追加できます (共有 DLL の場合)。したがって、それらが非公開の場合は、dll を Web アプリケーションの bin ディレクトリにコピーし、参照を追加して使用できます。
ユーザー コントロールは、ASP インクルード ファイルと非常によく似ており、簡単に作成できます。ユーザー コントロールをツールボックスに配置してドラッグしたり、ツールボックスからドロップしたりすることはできません。それらには独自の設計とコード ビハインドがあります。ユーザー コントロールのファイル拡張子は ascx です。
16. C# のシール クラスとは?
継承するクラスを制限したい場合は、封印されたクラスを作成します。クラスからの派生を防ぐために使用される封印された修飾子。シールされたクラスをベース クラスとして強制的に指定すると、コンパイル エラーが発生します。
17.メソッドのオーバーロードとは
メソッドのオーバーロードは、同じクラスに一意のシグネチャを持つ同じ名前の複数のメソッドを作成することです。コンパイル時に、コンパイラはオーバーロードの解決を使用して、呼び出す特定のメソッドを決定します。
18. Array と Arraylist の違いは何ですか?
配列では、同じタイプの項目のみを持つことができます。比較するときの配列のサイズは固定です。配列リストは配列に似ていますが、サイズが固定されていません。
19.プライベート仮想メソッドをオーバーライドできますか?
いいえ、クラス外ではアクセスできないためです。
20.アクセシビリティ修飾子「内部保護」について説明してください。
保護された内部変数/メソッドは、同じアセンブリ内でアクセスでき、この親クラスから派生したクラスからもアクセスできます。
21. System.String クラスと System.Text.StringBuilder クラスの違いは何ですか?
System.String は不変です。文字列変数の値を変更すると、新しいメモリが新しい値に割り当てられ、以前のメモリ割り当てが解放されます。 System.StringBuilder は、変更された文字列に個別のメモリ ロケーションを割り当てることなく、さまざまな操作を実行できる可変文字列の概念を持つように設計されています。
22. System.Array.CopyTo() と System.Array.Clone() の違いは何ですか?
Clone() メソッドを使用して、元の配列のすべての要素を含む新しい配列オブジェクトを作成し、CopyTo() メソッドを使用します。既存の配列のすべての要素が別の既存の配列にコピーされます。どちらの方法もシャロー コピーを実行します。
23.配列の要素を降順に並べ替えるにはどうすればよいですか?
Sort() メソッドの後に Reverse() メソッドを使用する。
24.例外をキャッチする C# 構文を書き留めてください
例外をキャッチするには、try-catch ブロックを使用します。 Catch ブロックは、system.Exception タイプのパラメーターを持つことができます。
例:
try { GetAllData(); } catch (Exception ex) { }
上記の例では、catch ステートメントからパラメーターを省略できます。
25.インターフェイスと抽象クラスの違いは何ですか?
インターフェイスには、宣言のみで定義のないすべてのメソッドがあります。抽象クラスでは、具体的なメソッドをいくつか持つことができます。インターフェイス クラスでは、すべてのメソッドが public です。抽象クラスにはプライベート メソッドがある場合があります。
26. Finalize() メソッドと Dispose() メソッドの違いは何ですか?
Dispose() は、オブジェクトが管理されていないリソースを解放するときに呼び出されます。一方、Finalize() は同じ目的で使用されますが、オブジェクトのガベージ コレクションは保証されません。
27.循環参照とは
循環参照は、2 つ以上のリソースが相互に依存している状況であり、ロック状態が発生し、リソースが使用できなくなります。
28. C#.NET のジェネリックとは?
ジェネリックは、再利用可能なコード クラスを作成して、コードの冗長性を減らし、型の安全性とパフォーマンスを向上させるために使用されます。ジェネリックを使用して、コレクション クラスを作成できます。ジェネリック コレクションを作成するには、System.Collections 名前空間の ArrayList などのクラスではなく、System.Collections.Generic 名前空間を使用する必要があります。ジェネリックは、パラメーター化された型の使用を促進します。
29. .NET のオブジェクト プールとは?
オブジェクト プールは、すぐに使用できるオブジェクトを含むコンテナーです。現在使用中のオブジェクト、プール内のオブジェクトの総数を追跡します。これにより、オブジェクトの作成と再作成のオーバーヘッドが削減されます。
30. .net で一般的に使用される例外の種類を列挙してください
ArgumentException、ArgumentNullException、ArgumentOutOfRangeException、ArithmeticException、DivideByZeroException、OverflowException、IndexOutOfRangeException、InvalidCastException、InvalidOperationException、IOEndOfStreamException、NullReferenceException、OutOfMemoryException、StackOverflowException など
31.カスタム例外とは?
場合によっては、ユーザーの要件に従って処理する必要があるエラーがいくつかあります。それらにはカスタム例外が使用され、定義された例外が使用されます。
32.デリゲートとは
デリゲートは C++ の関数ポインターと同じですが、唯一の違いは、関数ポインターとは異なり、タイプ セーフであることです。デリゲートは、より一般的なタイプ セーフな関数を記述するために使用できるため、必須です。
33. C# でクラスを他のクラスにどのように継承しますか?
C# では継承演算子としてコロンが使用されます。コロンとクラス名を配置するだけです。
public class DerivedClass :BaseClass
34.すべてのクラスの派生元である .net の基本クラスは何ですか?
System.Object
35.メソッドのオーバーライドとメソッドのオーバーロードの違いは何ですか?
メソッドのオーバーライドでは、メソッドの動作を変更する派生クラスのメソッド定義を変更します。メソッドのオーバーロードは、異なるシグネチャを持つ同じクラス内に同じ名前のメソッドを作成することです。
36.メソッドをオーバーロードする方法にはどのようなものがありますか?
メソッドは、パラメーターのさまざまなデータ型、さまざまなパラメーターの順序、さまざまな数のパラメーターを使用してオーバーロードできます。
37.インターフェイス内のメソッドにアクセシビリティ修飾子を指定できないのはなぜですか?
インターフェイスには、メソッド定義を持たない仮想メソッドがあります。すべてのメソッドは、派生クラスでオーバーライドされるために存在します。そのため、それらはすべて公開されています。
38.クラスを継承するように設定しながら、メソッドがオーバーライドされないようにするにはどうすればよいでしょうか?
クラスをパブリックとして宣言し、メソッドを封印して、オーバーライドされないようにします。
39.継承されたインターフェースのメソッド名が競合するとどうなりますか?
メソッドは独自のクラス内にあるため、実装はあなた次第です。異なるインターフェイスのメソッドが異なるデータを期待する場合、問題が発生する可能性がありますが、コンパイラが気にする限り問題ありません。
40.構造体とクラスの違いは何ですか?
構造体は値型の変数であり、クラスは参照型です。スタックに格納された構造体は追加のオーバーヘッドを引き起こしますが、取得は高速になります。構造体は継承できません。
41. .Net で null 許容型を使用する方法
値の型は、通常の値または null 値のいずれかを取ることができます。このような型は null 許容型と呼ばれます。
Int? someID = null; If(someID.HasVAlue) { }
42.デフォルト以外の値で配列を作成するにはどうすればよいですか?
Enumerable.Repeat を使用して、デフォルト値以外の配列を作成できます。
43. C# の「is」演算子と「as」演算子の違いは何ですか?
「is」演算子は、オブジェクトと特定の型の互換性をチェックするために使用され、結果をブール値として返します。
「as」演算子は、オブジェクトを型またはクラスにキャストするために使用されます。
44.マルチキャスト デリゲートとは
複数のハンドラーが割り当てられたデリゲートは、マルチキャスト デリゲートと呼ばれます。各ハンドラーはメソッドに割り当てられます。
45. C# .NET のインデクサーとは?
インデクサーは、C# ではスマート配列として知られています。クラスのインスタンスに配列と同じ方法でインデックスを付けることができます。
例:
public int this[int index] // Indexer declaration
46. .NET の「throw」と「throw ex」の違いは何ですか?
「throw」ステートメントは元のエラー スタックを保持しますが、「throw ex」はスロー ポイントからのスタック トレースを保持します。より正確なエラー情報を提供するため、常に「スロー」を使用することをお勧めします。
47. C# の属性とその重要性は?
C# は、特定のエンティティに宣言タグを定義する方法を開発者に提供します。クラスやメソッドなどを属性と呼びます。属性の情報は、リフレクションを使用して実行時に取得できます。
48. C# でシングルトン デザイン パターンを実装する方法
シングルトン パターンでは、クラスはインスタンスを 1 つだけ持つことができ、そのインスタンスへのアクセス ポイントをグローバルに提供します。
例:
Public sealed class Singleton { Private static readonly Singleton _instance = new Singleton(); }
49. directcast と ctype の違いは何ですか?
DirectCast は、実行時の型が DirectCast で指定された型と同じである必要があるオブジェクトの型を変換するために使用されます。
Ctype は、変換が式と型の間で定義されている変換に使用されます。
50. C# コードはマネージド コードですか、それともアンマネージド コードですか?
共通言語ランタイムは C# コードを中間言語にコンパイルできるため、C# はマネージ コードです。
51.コンソール アプリケーションとは
コンソール アプリケーションは、Windows のコマンド プロンプトで実行できるアプリケーションです。 .Net の初心者にとって、コンソール アプリケーションの構築は理想的には最初のステップです。
52.キューから要素を削除する例を挙げてください
dequeue メソッドは、要素をキューから削除するために使用されます。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Queue qt = new Queue(); qt.Enqueue(1); qt.Enqueue(2); qt.Enqueue(3); foreach (Object obj in qt) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The number of elements in the Queue " + qt.Count); Console.WriteLine("Does the Queue contain " + qt.Contains(3)); Console.ReadKey(); } } }
C言語
- システムエンジニアとアーキテクトのための2017年のトップ5リソース
- クラウドアプリケーションのエンドユーザーエクスペリエンスを測定するための上位の指標
- 2020年のトップクラウドインタビューの質問と回答
- 5Gの上位5つの問題と課題
- Windows、Linux、Mac 向けの 10 の最高の C# IDE (2021 年更新)
- サプライチェーンファイナンス:2019年のトレンド、課題、質問
- 賞の更新:先に進むためのロボット工学と自動化のニュース賞2021
- meoクラス4電気口頭質問と回答
- 5Gとエッジが2021年に向けて新たなサイバーセキュリティの課題を提起
- Lights Out Manufacturing に関する質問と回答
- 2021 年の圧縮空気とガスに関する記事トップ 5