ホームページ  >  記事  >  バックエンド開発  >  C#インターフェース

C#インターフェース

PHPz
PHPzオリジナル
2024-09-03 15:30:00499ブラウズ

C# における

インターフェイスは、抽象クラスまたは非抽象クラスによって実装または使用される抽象メソッドとプロパティのグループを保持するキーワードです。メソッドを定義するのはインターフェイス内のプロパティであり、デフォルトでパブリックおよび抽象になります。

最も簡単に言うと、インターフェイスは契約のようなもので、本体に含まれるすべてのメンバーまたはコンポーネントは契約に従う必要があり、実行する必要がある内容が定義されます。インターフェースにはフィールドが含まれず、常にキーワード「インターフェース」を使用して定義されます。

構文:

構文は、interface キーワードで始まり、その後にインターフェイスの名前、最後に本文が続きます。

interface <name_for_interface>
{
//abstract methods
//abstract properties.
}

ご覧のとおり、C# にはインターフェイスの標準構文があり、「interface」キーワードで始まり、次にインターフェイスの名前、そして本文内の抽象メソッドとプロパティが続きます。 C# では、クラスまたは構造体内に複数のインターフェイスを実装して使用できます。これらのインターフェイスは、さまざまなメソッド、インデクサー、プロパティ、さらにイベントをメンバーとして保持できます。

なぜ C# インターフェイスが必要なのでしょうか?

基本的に、インターフェイス内には特定の機能がないことは理解しましたが、そうであれば、なぜインターフェイスが必要なのでしょうか?

インターフェースをいつ使用するか?

  • セキュリティ: 一部の機能を単純に非表示にし、後でそれらを使用する必要がある場合。ユーザーにとって重要な詳細のみを表示しながら、いくつかの詳細を非表示にすることが重要です。
  • 多重継承: C# では、1 つのクラスが単純な親クラスから継承し、そのすべての機能を継承できます。 C# を複雑にしないという単純な理由から、C# では多重継承はサポートされていません。ただし、インターフェイスを使用すると、複数のインターフェイスを 1 つのクラスに実装できます。

C# インターフェイスには通常、次の要素が含まれます:

  1. 宣言 – C# では、インターフェイスはメソッド シグネチャ、プロパティ、イベント、またはインデクサーのセットを定義するコントラクトです。これには実装は含まれておらず、クラスが従うべき青写真として機能します。インターフェイスを実装するクラスは、インターフェイスで宣言されたすべてのメンバーに対して具体的な実装を提供する必要があります。
  2. メンバー – インターフェイス メンバーは、インターフェイス内で宣言されたメソッド、プロパティ、イベント、およびインデクサーです。これらは、実装クラスが遵守する必要がある規約を定義し、さまざまなクラス間で一貫した動作を保証します。クラスを実装する場合は、これらのメンバーに具体的な実装を提供し、コードの一貫性を促進し、ポリモーフィズムとコードの再利用を可能にする必要があります。
  3. 実装 – インターフェイスを実装するクラスは、インターフェイスで宣言されたすべてのメンバーの実装を提供する必要があります。クラスは、:interfaceName 構文を使用してインターフェイスを実装することを明示的に指定できます。例えば:
    public class MyClass : IMyInterface
    {
    public void Method1()
    {
    // Method implementation
    }public string Property1 { get; set; }
    
    public event EventHandler Event1;
    }
  4. 多重継承 : C# はインターフェイスを介した多重継承をサポートしています。クラスは複数のインターフェイスを実装できるため、実装の多重継承に伴う複雑さを伴うことなく、メソッド シグネチャの複数のセットを継承できます。これにより、従来の多重継承に固有のダイアモンド問題を回避しながら、クラス設計の柔軟性が向上します。
  5. インターフェイスの継承: C# では、インターフェイスの継承により、派生インターフェイスが 1 つ以上の基本インターフェイスで定義されたメソッド シグネチャを継承できます。派生インターフェイスを実装するクラスは、継承されたすべてのメソッドの実装を提供する必要があります。これにより、インターフェイスの階層の作成が可能になり、コードの再利用とオブジェクト設計の柔軟性が促進されます。

C# インターフェースの例

これで、インターフェイスとは何か、その必要性は理解できました。インターフェイス実装を使用した C# コードの簡単な例を示します。

例 #1

プログラムはインターフェイスを実装し、単純なステートメントを出力します。

コード:

using System;
namespace MyApplication {
interface SampleInterface {
void InterfaceMethod();
}
class Int_Example : SampleInterface
{
public void InterfaceMethod() {
Console.WriteLine("\nThis is simple example of Interface in C#.");
}
}
class Program {
static void Main(string[] args) {
Int_Example myInterface = new Int_Example();
myInterface.InterfaceMethod();
Console.Read();
}
}
}

コードの解釈: 使用と名前空間から始まり、基本的なインターフェイスが本体に 1 つのメソッドを持つ SampleInterface として生成されます。インターフェイス内のこのメソッドには特定の本体がありません。次に、作成したインターフェイスを実装する新しいクラスができます。 class キーワードの後に​​クラス名を指定し、コロン記号の後にインターフェイス名を続けてインターフェイスを実装して作成されます。 Int_Example クラス内には、以前に作成したインターフェイス メソッドがあり、その時点では本体がありませんでしたが、今回は、「これは C# のインターフェイスの簡単な例です。」という単純な print ステートメントを追加しました。

Then begins our mail class, namely Program, with the static void main statement. Inside our main class, we have created a new object for our Int_Example class which inherits interface. The new object is created and to the next line, our method created earlier is called up. Finally, our newly created object will call the earlier created method and the body inside that method will be executed here. With Console.Read(); the program will wait for user input before exiting.

Output:

C#インターフェース

Upon successful compilation and execution, the program must simply print the statement: “This is a simple example of Interface in C#.”

Example #2

Arithmetic operations using the interface.

Code:

using System;
namespace arth_interface {
public interface SampleInterface {
void sam_add(int a, int b);
void sam_sub(int a, int b);
void display();
}
class interface_class : SampleInterface {
int x, y;
public void sam_add(int a, int b) {
int m, n;
m = a;
n = b;
x = m + n;
}
public void sam_sub(int a, int b) {
int m, n;
m = a;
n = b;
y = a - b;
}
public void display() {
Console.WriteLine("Added Value is:" + x);
Console.WriteLine("Subtracted value is:" + y);
}
}
class arth_interface {
static void Main(string[] args) {
interface_class obj_interface_class = new interface_class();
int fnumber, snumber;
Console.WriteLine("Please Enter 1st Number to perform Addition and Subtraction:");
fnumber = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Now 2nd Number to perform Addition and Subtraction:");
snumber = Convert.ToInt16(Console.ReadLine());
obj_interface_class.sam_add(fnumber, snumber);
obj_interface_class.sam_sub(fnumber, snumber);
obj_interface_class.display();
Console.ReadKey();
}
}
}

Code Interpretation: Similar to our first example, we have used and namespace statements, followed by the interface and its body with methods. We have two basic methods for addition and subtraction with void as return type, two integers inside every method, respectively. Next, we have our class which implements our interface.

We’ve declared two integers and then we have our first method to calculate addition. Here is the operation that needs to be done for addition and the same is for the subtraction. Then we have our display method, which consists of two print statements, printing addition and subtraction values of the numbers passed.

Finally, we have our class with the main method, where we initially created an object for our interface. Then the program prints “Please Enter the 1st Number to perform Addition and Subtraction:”, where the user inputs a first number and the later second number, for the purpose of calculations. With the object created earlier, the program calls the add and sub-methods from the interface and the same operations are done. At last, we have our display method, which displays our results as defined in the display method and ReadKey(); method holds up our program until any key is pressed.

Output:

C#インターフェース

Advantages

Below are some of the advantages given.

  • One of the major advantages of Interface in C# is a better alternative to implement multiple inheritances.
  • The interface enables the plug-and-play method.
  • Complete Abstraction can be achieved by the implementation of Interface.
  • Along with making our code easy to maintain, concept loose coupling can be achieved.

Conclusion

We have understood what Interface in C# is. The proper syntax for an interface along with an explanation. To wrap it up, Interfaces in C# are a way to fill the emptiness of multiple inheritances in the language. Later we learned why do we actually need the interface in C# followed by the examples to demonstrate the understanding of the interfaces. The first example was to demonstrate simple use of interface while with the second example we implemented arithmetic operations, followed by Code Interpretation and output screenshot.

以上がC#インターフェースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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