C#.NET:interface

例①

単一のinterfaceを継承
using System.Windows;

namespace WpfApp
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public MainWindow()
        {
            // コンポーネントの初期化
            InitializeComponent();

            ITest testClass = new TestClass1();
            MessageBox.Show(testClass.Proc(1, 2));
            testClass.ShowProc();

            testClass = new TestClass2();
            MessageBox.Show(testClass.Proc(1, 2));
            testClass.ShowProc();
        }

        /// <summary>
        /// ITestインタフェースを継承したクラス①
        /// </summary>
        private class TestClass1 : ITest
        {
            public string Proc(int val1, int val2)
            {
                return (val1 + val2).ToString();
            }
            public void ShowProc()
            {
                MessageBox.Show("TestClass1です");
            }
        }

        /// <summary>
        /// ITestインタフェースを継承したクラス②
        /// </summary>
        private class TestClass2 : ITest
        {
            public string Proc(int val1, int val2)
            {
                return (val1 - val2).ToString();
            }
            public void ShowProc()
            {
                MessageBox.Show("TestClass2です");
            }
        }

        /// <summary>
        /// インタフェース
        /// 
        /// インタフェースを継承したクラスには、
        /// インタフェースで定義したメソッドがあることが保障される
        /// </summary>
        private interface ITest
        {
            string Proc(int val1, int val2);
            void ShowProc();
        }
    }
}


例②

複数のinterfaceを継承
using System.Windows;

namespace WpfApp
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public MainWindow()
        {
            // コンポーネントの初期化
            InitializeComponent();

            TestClass testClass = new TestClass();

            ITest1 test1 = testClass;
            MessageBox.Show(test1.Proc(1, 2));

            ITest2 test2 = testClass;
            test2.ShowProc();
        }

        /// <summary>
        /// ITest1とITest2インタフェースを継承したクラス
        /// </summary>
        private class TestClass : ITest1,ITest2
        {
            public string Proc(int val1, int val2)
            {
                return (val1 + val2).ToString();
            }
            public void ShowProc()
            {
                MessageBox.Show("TestClassです");
            }
        }

        /// <summary>
        /// インタフェース①
        /// </summary>
        private interface ITest1
        {
            string Proc(int val1, int val2);
        }

        /// <summary>
        /// インタフェース②
        /// </summary>
        private interface ITest2
        {
            void ShowProc();
        }
    }
}

最終更新:2014年01月31日 22:49
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。