C#
 Computer >> コンピューター >  >> プログラミング >> C#

インターフェイスはC#でどのように機能しますか?


インターフェイスは、クラスまたは構造体によって実装されるコントラクトを定義します。メソッド、プロパティ、イベント、およびインデクサーを含めることができます。インターフェイスはクラスに似ていますが、データを保持せず、実行できる動作(より正確には、それを実装するクラスが実行できる)のみを指定する点が異なります。

クラスは1つ以上のインターフェースを実装できます。インターフェイスメンバーを実装するには、クラスにインターフェイスメンバーと同じメソッド定義(つまり、同じ名前と署名)を持つパブリックメンバーが必要です。

たとえば、IComparerは、System.Collections名前空間で定義されたインターフェイスであり、2つのオブジェクトを比較するメソッドのコントラクトを定義します。 CarクラスはIComparerインターフェースを実装します

public interface IDriver{
   void Drive();
}
public class Car : IDriver{
   public string Name { get; set; }

   public int Speed { get; set; }
   public void Drive(){
      Console.WriteLine($"{Name}: {Speed}");
   }
}

インターフェイスのすべてのメンバーは暗黙的に抽象化されており、実装の詳細はありません。すべてのインターフェースメンバーはパブリックです。インターフェイスメンバーでアクセス修飾子を使用することはできません。インターフェイスを実装するクラスは、インターフェイスを実装するパブリックメソッドを提供する必要があります。

インターフェイスは他のインターフェイスを拡張できます。たとえば、-

public interface IPerformer { void Perform(); }
public interface ISinger : IPerformer{
   void Sing();
}

インターフェイスを使用すると、クラスに複数のソースからの動作を含めることができます。 C#ではC ++のように多重継承が許可されていないため、インターフェイスはC#で多重継承を実現する1つの方法です。

インターフェイスの欠点は、APIを公開するために使用する場合、クラスよりも柔軟性が低いことです。インターフェイスのコントラクトを変更すると、そのインターフェイスを実装するすべてのクラスが壊れ、インターフェイスを実装するために更新する必要があります。

using System;
class Program{
   static void Main(){
      var carOne = new Car { Name = "Honda", Speed = 100 };
      var carTwo = new Car { Name = "Toyota", Speed = 70 };
      carOne.Drive();
      carTwo.Drive();
   }
}
public interface IDriver{
   void Drive();
}
public class Car : IDriver{
   public string Name { get; set; }
   public int Speed { get; set; }
   public void Drive(){
      Console.WriteLine($"{Name}: {Speed}");
   }
}

出力

Honda: 100
Toyota: 70

  1. YouTubeチャンネルメンバーシップはどのように機能しますか?

    YouTubeメンバーシップは、毎月の自動寄付を約束することで、ファンがお気に入りのYouTubeチャンネルをサポートするための方法です。メンバーシップは、YouTuberに経済的支援を提供し、YouTuberがフルタイムで動画を作成するのに役立ちます。さらに、メンバーは、メンバー限定の投稿へのアクセスやYouTubeライブチャット専用の絵文字などの特典を利用できます。 YouTubeメンバーシップは、YouTubeサブスクリプションとは異なります。 YouTuberに登録すると、そのチャンネルの新しい動画がフィードに自動的に追加されます。 TwitterやInstagramで誰かをフォロー

  2. データスクレイピングはどのように機能しますか?

    これを読んでいるので、データスクレイピングの利点と、その自動化された手法により、すべての手作業を自分で行うことなく大量のデータを収集できることを聞いた可能性があります。 しかし、データスクレイピングはどのように正確に機能しますか?そして、それは難しいですか、それとも誰かがデータをスクレイピングする方法を学ぶことができますか? 多分それはあなたが好奇心を持っているからです。または、ビジネス(またはサイドハッスル)にもデータスクレイピングを使用できるかどうかを確認したい場合があります。 いずれにせよ、この短い記事の終わりまでに、データスクレイピングとは何か、スクレイピングプロセスが実際にど