>  기사  >  백엔드 개발  >  C# 기초지식 정리 : 기초지식 (9) 인터페이스 응용

C# 기초지식 정리 : 기초지식 (9) 인터페이스 응용

黄舟
黄舟원래의
2017-02-11 13:19:521322검색

저는 이전에 인터페이스라는 개념을 접한 적이 있습니다. 사실 인터페이스는 메서드와 속성의 집합입니다. 인터페이스를 상속받는 사람은 이 메서드와 속성 집합을 구현해야 합니다. 즉, 이 클래스에는 이 인터페이스에 의해 정의된 일부 기능이 있습니다.
이 인터페이스 기능은 일반적인 프로그래밍에서 큰 역할을 합니다. 종종 많은 사람들이 동시에 대규모 프로젝트를 완료해야 하기 때문에 일부 클래스에서는 특정 메서드와 실행이 필요할 수 있습니다. 프로세스는 비슷할 것입니다. 이것이 바로 프로젝트 설계 단계에서 이 방법을 인터페이스로 추상화할 필요가 있는 이유입니다. 그런 다음 프로젝트에서는 모든 사람이 이 인터페이스만 구현하면 되므로 모든 사람이 자신의 인터페이스를 정의하는 것을 방지하여 동일한 작업에서 혼란을 초래할 수 있습니다.
예를 들어 데스크톱 애플리케이션을 만들 때 많은 창을 사용하게 되며 창에 이벤트가 등록되고(일반적으로 여러 컨트롤 간의 이벤트 전송에 사용됩니다) 스킨이 첨부됩니다(즉, 사진이 첨부됩니다. 양식으로 사용되며 컨트롤의 배경 이미지) 등이 모든 창에서 사용해야 하는 방법입니다. 이와 같이 인터페이스를 추상화하고 이름을
IWindowAdditionalAble로 지정할 수 있습니다.
예를 들어 UseForm 창을 작성할 때 다음 인터페이스를 구현합니다.

인터페이스:

    interface IWindowAdditionalAble
    {
        void PasteSkin();//给窗体中的控件贴皮肤

        void RegisterEvent();//注册要用到的事件
    }

인터페이스 코드 구현:

 public partial class UseForm : Form, IWindowAdditionalAble//每写一个窗体类都实现该接口
    {
        public UseForm()
        {
            InitializeComponent();

            PasteSkin();

            RegisterEvent();
        }

        #region IWindowAdditionalAble 成员

        /// <summary>
        /// 贴皮肤的方法
        /// </summary>
        public void PasteSkin()
        {
            this.btnTest.BackColor = Color.Gray;
        }
        /// <summary>
        /// 注册事件的方法
        /// </summary>
        public void RegisterEvent()
        {
            this.btnTest.Click += new EventHandler(btnTest_Click);
        }

        void btnTest_Click(object sender, EventArgs e)
        {
            throw new NotImplementedException();
        }

        #endregion
    }

다른 창 A, B...에서는 모두 이 인터페이스를 구현합니다. 이 인터페이스는 더욱 통합되고 어떤 메서드도 남기지 않습니다. 물론 프로젝트 요구 사항에 따라 특정 요구 사항을 충족하는 다른 인터페이스를 작성할 수도 있습니다.

위 내용은 C#의 기초 지식을 정리한 것입니다: 기본 지식 (9) 인터페이스 응용에 대한 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


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