2007年8月22日水曜日

interfaceの法則

COM(DCOM)では、Interfaceに次の法則が成り立ちます。


これがC#(.Net Fraemework)のinterfaecで成り立つかどうか
へなちょこプログラマの自分には、分からなかったので実験
してみた。

結果は、c#のintercaeについてもなりたつようだ。

以下、実験につかったしょぼいコードです。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace InterfaceCastTest
{

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
IInu anonenone;

anonenone = new TAnonenone();

label1.Text = anonenone.wanwanwan();

label2.Text = (anonenone as INeco).nyannyannyan();

label3.Text = (anonenone as IAhiru).gagaga();

label4.Text = (anonenone as IKaeru).gagaga();
}
}

interface IInu
{
string wanwanwan();
}

interface INeco
{
string nyannyannyan();
}

interface IAhiru
{
string gagaga();
}

interface IKaeru
{
string gagaga();
}
class TAnonenone : IInu, INeco, IAhiru, IKaeru
{

public string nyannyannyan()
{
return "nyan nyan nyan";
}

public string wanwanwan()
{
return "wan wan wan";
}

public string gagaga()
{
return "ga ga ga";
}

}

}

0 件のコメント: