故事中第2个大臣是带来了货物。
class goods : MinisterReturns
{
private string _goods = "精美的商品";
public string Goods
{
get
{
return _goods;
}
}
}
{
private string _goods = "精美的商品";
public string Goods
{
get
{
return _goods;
}
}
}
在我们定义好了大臣返回的东西后,我们要定义国王这个类了,这个故事中国王主要对委托大臣做的事情的结果进行处理.这里也引出了委托的作用,委托可以将方法像参数一样传递给另一个方法,然后KING只要对参数进行处理就行了,所以在定义king之前我们先定义好一个委托先。
delegate MinisterReturns MinisterOneYearDo();
由于每一个大臣得到的都是10个金币,所以没必要传参数进去了。下面我们来定义国王要做的事情,国王要做的事情就是要处理委托做完事后的结果。
public static void handleMinisterOneyearDo(MinisterOneYearDo action)
结果是对大臣A奖励,对大臣B奖励,对大臣C处罚。
class king
{
public static string KingsOrder = "让三个大臣用10个金币在王宫外一年的时间给国王带来一些东西.";
public static void handleMinisterOneyearDo(MinisterOneYearDo action)
{
MinisterReturns minreturns = action();
if (minreturns is goldCoin)
{
switch (((goldCoin)minreturns).coinsAmount)
{
case 100:
Console.WriteLine("king非常高兴大臣1的表现,奖多100个金币");
break;
case 10:
Console.WriteLine("king觉得这个是饭桶,变为平民");
break;
default:
break;
}
}
if (minreturns is goods)
Console.WriteLine("king非常高兴大臣2的表现,奖多10个金币");
}
}
{
public static string KingsOrder = "让三个大臣用10个金币在王宫外一年的时间给国王带来一些东西.";
public static void handleMinisterOneyearDo(MinisterOneYearDo action)
{
MinisterReturns minreturns = action();
if (minreturns is goldCoin)
{
switch (((goldCoin)minreturns).coinsAmount)
{
case 100:
Console.WriteLine("king非常高兴大臣1的表现,奖多100个金币");
break;
case 10:
Console.WriteLine("king觉得这个是饭桶,变为平民");
break;
default:
break;
}
}
if (minreturns is goods)
Console.WriteLine("king非常高兴大臣2的表现,奖多10个金币");
}
}