>  기사  >  백엔드 개발  >  C# 인터페이스 문제에 대한 솔루션에 대한 자세한 설명

C# 인터페이스 문제에 대한 솔루션에 대한 자세한 설명

黄舟
黄舟원래의
2017-09-19 11:17:271886검색

이 기간 동안의 프로젝트에서는 인터페이스를 특별히 이해하지 못했습니다. 인터페이스 정의가 매우 간단하다는 것만 알았습니다. (개인적으로 개발할 때는) 이 인터페이스가 불필요하다고 느꼈습니다. 이제 팀 개발을 시작하면서 인터페이스가 얼마나 중요하고 편리한지 깨달았습니다!

다음으로, 이 기간 동안의 인터페이스 사용에 대한 저의 대략적인 의견에 대해 이야기하겠습니다. 제가 말한 것이 옳았으면 좋겠습니다. 제가 틀렸다면 양해해 주시고 제안해 주시기 바랍니다!

READY GO!

인터페이스 정의에 대해서는 자세히 설명하지 않겠습니다. 즉, 이 인터페이스 클래스를 상속받은 모든 사람은 인터페이스에 정의를 구현해야 한다는 것입니다. 이러한 필요성에 대해 팀 개발에서 인터페이스에 동의하는 한 코드가 통합됩니까? ! !

인터페이스가 중요하다고 생각하는 첫 번째 포인트는 프로젝트 규정을 통일하고 팀 코드 관리를 용이하게 한다는 것입니다!

다른 예를 들어 설명하겠습니다.

회사 A는 많은 동물을 포함하는 동물 시스템을 개발하기로 결정했습니다. 회사는 각 동물의 소리 지르는 행동을 구현하기로 결정했습니다...

이런 경우 일반적으로 각 프로그래머가 이를 받아들입니다. 실현하려는 동물 유형을 알고 나면 작업을 시작할 수 있습니다! ! !

프로그래머 멤버는 돼지 클래스를 구현합니다. 그는 외치는 방법 void Shout(문자열 내용){… 옆집 왕이 그것을 구현하기 시작했습니다. 모든 짐승이 함께 포효합니다! ! ! ! &엔%엔*%엔엔%엔 상스러운 언어의 식사가 터졌습니다! 이것을 어떻게 작성하나요? 하나씩 불러볼까? ? ?

프로그래머 동물의 울음소리도 들려주세요! ! ! ! !

이제 옆집 왕씨가 동물을 모두 부르고 싶으니 하나씩 메소드를 불러야 하는데...

자, 옆집 왕씨가 회의를 열어 동물 인터페이스를 정의하고, 모든 동물 클래스는 이 인터페이스를 상속해야 합니다. 이 인터페이스는 하나만 정의합니다. void Shout(); (너무 많이 쓰지 않고 게으른)

X, Y, M 프로그래머가 이를 상속한 후 X, M은 즉시 문제가 있음을 발견했고 그리고 자신을 변화시키기 시작했습니다. 그의 손에 있는 종족

이때, 라오왕은 모든 짐승들과 함께 포효하기 시작했습니다! 하하하하하

코드는 모두가 볼 수 있도록 다음에 게시됩니다

Interface

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("猪怎么叫来着??猪叫");
        }
    }
}

옆집 라오왕이 깨닫는다 모든 짐승의 단결 Ming (Lao Wang과 같은 캐릭터의 존재를 물리 치기)

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.