目次
C# OOP 面接の質問の概要
パート 1 – C# OOP 面接の質問 (基本)
1.インターフェイスと抽象クラスの違いは何ですか?
2.デリゲートとその用途とは何ですか?
3.遅延バインディングと早期バインディングの違いは何ですか?
4.継承されたインターフェイスに競合するメソッド名がある場合はどうなりますか?
パート 2 – C# OOP 面接の質問 (上級)
6.アクセシビリティ修飾子とは何ですか?C# にはいくつありますか?
7. What is a virtual method in C#?
8. How to avoid NULL in C#?
9. What is the extension method in C#, and how to use them?
10. Can “this” keyword be used within a static method?

C# OOP 面接の質問

Sep 03, 2024 pm 03:35 PM
c# c# tutorial

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 までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

マルチスレッドと非同期C#の違い マルチスレッドと非同期C#の違い Apr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C#対C:歴史、進化、将来の見通し C#対C:歴史、進化、将来の見通し Apr 19, 2025 am 12:07 AM

C#とCの歴史と進化はユニークであり、将来の見通しも異なります。 1.Cは、1983年にBjarnestrostrupによって発明され、オブジェクト指向のプログラミングをC言語に導入しました。その進化プロセスには、C 11の自動キーワードとラムダ式の導入など、複数の標準化が含まれます。C20概念とコルーチンの導入、将来のパフォーマンスとシステムレベルのプログラミングに焦点を当てます。 2.C#は2000年にMicrosoftによってリリースされました。CとJavaの利点を組み合わせて、その進化はシンプルさと生産性に焦点を当てています。たとえば、C#2.0はジェネリックを導入し、C#5.0は非同期プログラミングを導入しました。これは、将来の開発者の生産性とクラウドコンピューティングに焦点を当てます。

XMLの形式を変更する方法 XMLの形式を変更する方法 Apr 03, 2025 am 08:42 AM

XML形式を変更する方法はいくつかあります。Atepadなどのテキストエディターを使用して手動で編集する。 XmlBeautifierなどのオンラインまたはデスクトップXMLフォーマットツールを使用して自動的にフォーマットします。 XSLTなどのXML変換ツールを使用して変換ルールを定義します。または、Pythonなどのプログラミング言語を使用して解析および操作します。元のファイルを変更してバックアップするときは注意してください。

XMLを単語に変換する方法 XMLを単語に変換する方法 Apr 03, 2025 am 08:15 AM

XMLを単語に変換するには、Microsoft Wordの使用、XMLコンバーターの使用、またはプログラミング言語の使用方法が3つあります。

XMLをJSONに変換する方法 XMLをJSONに変換する方法 Apr 03, 2025 am 09:09 AM

XMLをJSONに変換する方法は次のとおりです。プログラミング言語(Python、Java、C#など)でスクリプトまたはプログラムを作成して変換します。オンラインツール(XMLからJSON、GojkoのXMLコンバーター、XMLオンラインツールなど)を使用してXMLデータを貼り付けまたはアップロードし、JSON形式の出力を選択します。 XMLからJSONコンバーターを使用して変換タスクを実行します(酸素XMLエディター、Stylus Studio、Altova XMLSpyなど)。 XSLT StyleSheetsを使用してXMLをJSONに変換します。データ統合ツールを使用しています(Informaticなど

C#マルチスレッドプログラミングとは何ですか? C#マルチスレッドプログラミングでは、C#マルチスレッドプログラミングを使用します C#マルチスレッドプログラミングとは何ですか? C#マルチスレッドプログラミングでは、C#マルチスレッドプログラミングを使用します Apr 03, 2025 pm 02:45 PM

C#マルチスレッドプログラミングは、プログラムが複数のタスクを同時に実行できるようにするテクノロジーです。パフォーマンスを改善し、応答性を改善し、並列処理を実装することにより、プログラムの効率を改善できます。スレッドクラスはスレッドを直接作成する方法を提供しますが、タスクやAsync/待望などの高度なツールは、より安全な非同期操作とクリーンなコード構造を提供できます。マルチスレッドプログラミングの一般的な課題には、デッドロック、レース条件、リソースリークが含まれます。これらのリソースモデルの設計と、これらの問題を回避するために適切な同期メカニズムの使用が必要です。

XML形式を開く方法 XML形式を開く方法 Apr 02, 2025 pm 09:00 PM

ほとんどのテキストエディターを使用して、XMLファイルを開きます。より直感的なツリーディスプレイが必要な場合は、酸素XMLエディターやXMLSPYなどのXMLエディターを使用できます。プログラムでXMLデータを処理する場合、プログラミング言語(Pythonなど)やXMLライブラリ(XML.ETREE.ELEMENTTREEなど)を使用して解析する必要があります。

C#.NET:.NETエコシステムを使用したアプリケーションの構築 C#.NET:.NETエコシステムを使用したアプリケーションの構築 Apr 27, 2025 am 12:12 AM

.NETを使用してアプリケーションを構築する方法は? .NETを使用してアプリケーションを構築することは、次の手順を通じて達成できます。1)C#言語やクロスプラットフォーム開発サポートを含む.NETの基本を理解します。 2)コンポーネントや.NETエコシステムの作業原則などのコア概念を学習します。 3)単純なコンソールアプリケーションから複雑なWebAPISおよびデータベース操作まで、基本的および高度な使用をマスターします。 4)構成やデータベース接続の問題など、一般的なエラーとデバッグ手法に精通している。 5)アプリケーションのパフォーマンスの最適化と非同期プログラミングやキャッシュなどのベストプラクティス。

See all articles