ExtendSampleClassでメソッドを定義しSampleクラスを拡張してみる。
using System;
// クラスに拡張メソッドを定義する
static class ExtendSampleClass
{
// 年代を判定する拡張メソッドを定義
public static void check(this SampleClass s)
{
// 30代以上か判定、出力
if (30 <= s.age())
{
Console.WriteLine("30代以上");
}
// 10代以下か判定、出力
else if (s.age() < 20)
{
Console.WriteLine("10代以下");
}
// 上記以外は20代、出力
else
{
Console.WriteLine("20代");
}
}
}
// 生年から年齢(age)(2009年現在)を出力
class SampleClass
{
int y;
// 生年を指定して初期化
public SampleClass(int y)
{
this.y=y;
}
// 年齢(age)を求める
public int age()
{
return 2009 - this.y;
}
// 生年のプロパティ
public int year
{
get
{
return this.y;
}
}
}
class MainClass
{
public static void Main()
{
// 生年
SampleClass a = new SampleClass(1995);
/* 拡張メソッドで年代を判定
* check()メソッドがSampleClassのメソッドの
* ように使用 */
Console.Write("1995年生まれ ");
// 出力値:10代以下
a.check();
var b = new SampleClass(1985);
Console.Write("1985年生まれ ");
// 出力値:20代
b.check();
var c = new SampleClass(1975);
Console.Write("1975年生まれ ");
// 出力値:30代以上
c.check();
}
}
0 コメント:
コメントを投稿