ホームページ  >  記事  >  バックエンド開発  >  C# OOP 面接の質問

C# OOP 面接の質問

WBOY
WBOYオリジナル
2024-09-03 15:35:40716ブラウズ

C# OOP 面接の質問の概要

C# は、オブジェクト指向、関数型、汎用、コンポーネント指向のプログラミング言語です。さまざまなアプリケーションの作成に使用されています。特に Windows デスクトップ アプリケーションとゲームの構築に優れています。 Web 開発は、モバイル開発で人気が高まっている C# を使用して効率的に行うこともできます。そのため、Web やゲームを開発したいプログラマーにとっては優れた選択肢となります。静的型付け言語は、アプリケーションになる前に、書かれたソースコードを徹底的にチェックします。これは学習するのが複雑な言語であり、習得するにはかなりの時間がかかる場合があります。開発者は、さまざまなクロスプラットフォーム ツールを使用して、モバイル プラットフォームやデスクトップ プラットフォームで使用できるアプリケーションを C# で作成できます。

C# OOP に関連する仕事を探している場合は、2023 年の C# OOP 面接の質問に備える必要があります。面接は毎回異なり、仕事の範囲も異なりますが、私たちは、あなたが飛躍して面接を成功させるのに役立つ、C# OOP 面接の主な質問と回答をお手伝いします。

パート 1 – C# OOP 面接の質問 (基本)

この最初のパートでは、C# OOP 面接の重要な質問と回答について説明します

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

答え:

いくつかの違いを以下に示します:

  • 抽象クラスには非抽象メソッド (具象メソッド) を含めることができますが、インターフェースの場合はすべてのフォームが抽象でなければなりません。
  • 抽象クラスは変数を宣言または使用できますが、インターフェイスはそれができません。
  • 抽象クラスでは、すべてのデータ メンバーまたは関数はデフォルトでプライベートですが、インターフェイスではすべてパブリックです。手動で変更することはできません。
  • 抽象クラスはコンストラクターを使用しますが、インターフェイスにはコンストラクターがありません。
  • クラスは任意の数のインターフェイスを実装できますが、サブクラスは最大でも 1 つの抽象クラスのみを使用できます。

2.デリゲートとその用途とは何ですか?

答え:

デリゲート オブジェクトは、メソッドへの参照を保持する参照型の変数です。デリゲートのオブジェクトが所有する接続は実行時に変更できます。デリゲート オブジェクトには、シーケンス FIFO 内のタスクを参照する、呼び出しリストとも呼ばれる多くの関数参照を含めることができます。実行時に += 演算子によってこのリストに新しい関数を参照し、-= 演算子によって削除できます。

次の C# OOP 面接の質問に進みましょう。

3.遅延バインディングと早期バインディングの違いは何ですか?

答え:

コンパイル時ポリモーフィズムまたはアーリーバインディングでは、名前は同じだがパラメーターの型が異なる、または複数のパラメーターを持つ複数のメソッドを使用します。このため、同じクラス内の同じメソッド名で異なるタスクを実行できます。これは、メソッドのオーバーロードとも呼ばれます。

public class TestData
{
public int Add(int a, int b, int c)
{
return a + b + c;
}
public int Add(int a, int b)
{
return a + b;
}
}
class Program
{
static void Main(string[] args)
{
TestData dataClass = new TestData();
int add2 = dataClass.Add(45, 34, 67);
int add1 = dataClass.Add(23, 34);
}
}

動的ポリモーフィズムまたは実行時ポリモーフィズムの別名は、遅延バインディングです。ここでは、メソッド名とメソッド シグネチャ (パラメーターの数とパラメーターの型は同じである必要があり、実装が異なる場合があります)。メソッドのオーバーライドは、動的ポリモーフィズムの一例です。

public class Drawing
{
public virtual double Area()
{
return 0;
}
}
public class Square : Drawing
{
public double Length { get; set; }
public Square()
{
Length = 6;
}
public override double Area()
{
return Math.Pow(Length, 2);
}
}
public class Rectangle : Drawing
{
public double Height { get; set; }
public double Width { get; set; }
public Rectangle()
{
Height = 5.3;
Width = 3.4;
}
public override double Area()
{
return Height * Width;
}
}
class Program
{
static void Main(string[] args)
{
Drawing square = new Square();
Console.WriteLine("Area :" + square.Area());
Drawing rectangle = new Rectangle();
Console.WriteLine("Area :" + rectangle.Area());
}
}

4.継承されたインターフェイスに競合するメソッド名がある場合はどうなりますか?

答え:

これらは、典型的な C# OOP 面接の質問の一部です。同じクラスに競合するメソッドが含まれていると想像してください。その場合、同じ名前と同じシグネチャのため、同じクラス内でそれらの本体を独立して実装することはできないため、このメソッドの混乱を避けるためにメソッド名の前にインターフェイス名を使用する必要があります。

interface testInterface1 {<br> void Show();<br> }<br> interface testInterface2 {<br> void Show();<br> }<br> class Abc: testInterface1,<br> testInterface2 {<br> void testInterface1.Show() {<br> Console.WriteLine("For testInterface1 !!");<br> }<br> void testInterface2.Show() {<br> Console.WriteLine("For testInterface2 !!");<br> }<br> }<br>

パート 2 – C# OOP 面接の質問 (上級)

この最初のパートでは、高度な C# OOP インタビューの質問と回答について説明します

6.アクセシビリティ修飾子とは何ですか?C# にはいくつありますか?

答え:

アクセス修飾子は、メンバーまたは型の宣言されたアクセシビリティを指定するために使用されるキーワードです。 C# には、5 種類のアクセス修飾子があります。

パブリック – パブリックメンバーへのアクセスに制限はありません。

プライベート – クラス定義内でのアクセスが制限されています。何も指定されていない場合、これがデフォルトになります。

保護 – アクセスはクラス定義内およびコースから継承するクラスに限定されます。

内部 – アクセスは、現在のプロジェクトによって定義されたクラスにのみ制限されます。

7. What is a virtual method in C#?

Answer:

Developers use a virtual method to define a method that can be redefined in derived classes. We make a virtual method in the base class using the virtual keyword, and that method is overridden in the derived class using the override keyword.

Let us move on to the following C# OOP Interview Questions.

8. How to avoid NULL in C#?

Answer:

Null is not an object. We can have a class, but a variable with a NULL value is not pointing to any object. We might come across a piece of code that contains many conditional statements that check if the value of a variable is NULL. Let’s review a static method:

public static string DisplayUpperString( string s ){
string upper = string.Empty;
If( s == null ) {
upper = null;
}
else {
upper = s.ToUpper();
}
return upper;
}

This code is fine and converts to the upper case of a given string.
But from an OO perspective, consider constructing an object that represents nothing rather than evaluating it for NULL.

public static String DisplayUpperString ( PossibleString s ){
string upper = s.ToPossibleUpper();
return upper;
}

Now the function is less cluttered, more readable, and no longer uses the check for a NULL value.

9. What is the extension method in C#, and how to use them?

Answer:

Interviewers frequently ask about extension methods in C# OOP interviews. This method enables you to add methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type. Extension methods are only in scope when explicitly importing the namespace into your source code using a directive.

10. Can “this” keyword be used within a static method?

Answer:

Since “this” keyword returns a reference to the current instance of a class, we cannot use this inside a static method. And static members exist without any instance of the class and call with the name of the class, not by instance. The “this” keyword is implicitly defined in every constructor and non-static method as a particular kind of reference variable as the first argument of the class type in which it is defined.

以上がC# OOP 面接の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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