c# インターフェース interface

      2017/07/13

interface インターフェース c# 入門

interface インターフェース c# 入門

インターフェースとは
継承寒けのないクラスに機能を提供する

インターフェースの定義
interface インターフェース名

{
void メソッド名();
string プロパティ名
{
get;
set;

}

}
インターフェースの実装

class クラス名 : インターフェース名
{

public void メソッド名()
{

}

public string プロパティ名
{
get
{
return 変数名;

}
set
{
変数名 = value;

}
}
}


サンプルソース c#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

private void button1_Click(object sender, EventArgs e)
{
brave taro = new brave();
Wizard taro2 = new Wizard();
taro.spell(taro.Thunder);
taro2.spell(taro2.Thunder);
}

interface magic

{
void spell(string str);
string Thunder
{
get;
set;

}

}
class Wizard : magic
{
string Thu = "Thunder";
public void spell(string str)
{

Console.Write(str + "を唱えた");
}

public string Thunder
{
get
{
return Thu;

}
set
{
Thu = value;

}
}
}
class brave : magic
{
string Thu = "Thunder";
public void spell(string str)
{

Console.Write(str +"を唱えた");
}

public string Thunder
{
get
{
return Thu;

}
set
{
Thu = value;

}
}

}
}
}

実行結果は
Thunderを唱えたThunderを唱えた

遊びでインターフェースを作成しておりますので
設計がめちゃくちゃですが気にしないでください。

新しくファイアをインターフェースに追加してもいいですし。
spellメソッドの中にif文加えて呪文をことに処理書いてもいいですし。
サンダーは魔法使いでも勇者でも使えそう感じがしたので
消費mpを設定して魔法使いは同じ魔法でも消費mp少なくとかできそうですね。

ゲーム制作は勉強したこともないので何となく書いてみました。

職業ごとに同じ魔法の消費MP変わらないのであれば構造体で定義したほうがいいです。
普通はそうするんだろうと思います。

PR



 - C# 入門

Translate »