例①
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