ホームページ  >  記事  >  バックエンド開発  >  C#インターフェイスの問題の解決策の詳細な説明

C#インターフェイスの問題の解決策の詳細な説明

黄舟
黄舟オリジナル
2017-09-19 11:17:271935ブラウズ

この時期のプロジェクトではインターフェイスについて特に理解していませんでしたが、(個人で開発していたときは) インターフェイスの定義が非常に単純であることだけを認識していました。チーム開発を始めて、インターフェイスがいかに重要で便利であるかを知りました。

次に、この期間のインターフェースの使用についての私の大まかな意見について話させてください。私の言ったことは正しいと思っていただけると幸いです。私が間違っている場合は我慢して提案をしていただければ幸いです。

準備完了!

インターフェイスの定義については多くは言いません。これには非常に重要な知識があります。つまり、このインターフェイス クラスを継承するすべての人がインターフェイスに定義を実装する必要があります。この必要性は、チーム開発において、インターフェースに同意する限り、コードは統一されるのでしょうか? ! !

これがインターフェイスが重要だと思う最初のポイントです。これにより、プロジェクトの規定を統一し、チームのコード管理を容易にすることができます。

別の例を使って説明しましょう:

会社 A は、多くの動物を含む動物システムを開発することにしました...

これに関しては、通常、実現したい動物の種類がわかったら、熱心に作業を開始できます。 ! !

プログラマー メンバーは pig クラスを実装します。 彼はシャウト メソッド void Shout(string content){……}

………………

さて、完成させる必要のある動物を完成させました。隣の王が実行し始めた、獣たちは一斉に咆哮する! ! ! ! &¥%¥*%¥¥%¥ 暴言メシ勃発!これをどうやって書くか?一人ずつ電話しますか? ? ?

プログラマー 動物の鳴き声も伝えてみましょう。 ! ! ! !

今、隣の王さんはすべての動物を呼び出したいので、メソッドを 1 つずつ呼び出す必要があります...

OK、隣の王さんは動物のインターフェイスを定義するために会議を開催しましょう。すべての動物クラスはこのインターフェイスを継承する必要があり、このインターフェイスは void Shout() を 1 つだけ定義します (あまり書きすぎず、怠惰です)

X、Y、M のプログラマーがそれを継承した後、X、M は問題があることにすぐに気づきました。それから自分自身を変え始めました彼の手の中の種

このとき、老王はすべての獣とともに咆哮を始めました!あはははは

次に誰でも見れるようにコードを投稿します

インターフェース

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace InterfaceProject
{    /// <summary>
    /// 动物接口    /// </summary>
    interface IAnimal
    {        /// <summary>
        /// 动物叫喊        /// </summary>
        void Shout();
    }
}

dog


using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace InterfaceProject
{    /// <summary>
    /// 狗    /// </summary>
    public class Dog:IAnimal
    {        public void Shout()
        {
            Console.WriteLine("汪汪汪");
        }
    }
}

cat


using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace InterfaceProject
{    /// <summary>
    /// 猫    /// </summary>
    public class Cat:IAnimal
    {        public void Shout()
        {
            Console.WriteLine("喵喵喵");
        }
    }
}

pig


using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace InterfaceProject
{    /// <summary>
    /// 猪    /// </summary>
    public class Pig:IAnimal
    {        public void Shout()
        {
            Console.WriteLine("猪怎么叫来着??猪叫");
        }
    }
}

隣のラオ・ワンは気づくすべての獣の団結、明 (ラオ・ワンのようなキャラクターの存在を倒す)


using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace InterfaceProject
{    class Program
    {        static void Main(string[] args)
        {            //百兽齐鸣(这里可以使用反射来初始化所有继承IAnimal的所有动物,我就不写这个了,主要看接口)
            List<IAnimal> animals = new List<IAnimal>();
            IAnimal dog = new Dog();
            animals.Add(dog);
            IAnimal cat = new Cat();
            animals.Add(cat);
            IAnimal pig = new Pig();
            animals.Add(pig);            //所有动物都叫一遍
            for (int i = 0; i < animals.Count; i++)
            {
                animals[i].Shout();
            }

            
        }
    }
}

このインターフェースに関する私の大まかな洞察は以上です!インターフェースは非常に使いやすいですが、このインターフェースの役割を理解する必要があります。この記事を読んで、私のような初心者がインターフェースへの第一歩を踏み出せることを願っています

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

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