今天看了一个写法。
大概是这个意思:
using System;
namespace InterfaceTest
{
public interface IFuckableItem
{
int GetItemType();
string Fuck();
}
public abstract class Item
{
}
public class Stone : Item
{
}
public abstract class Animal : Item, IFuckableItem
{
public abstract int GetItemType();
public abstract string Fuck();
}
public abstract class ChongQiWawa : Item, IFuckableItem
{
public abstract int GetItemType();
public abstract string Fuck();
}
public abstract class Human : Item, IFuckableItem
{
public abstract int GetItemType();
public abstract string Fuck();
}
//------------------------------------------------------------
public class Sheep : Animal
{
public override int GetItemType()
{
return 0;
}
public override string Fuck()
{
return "Mie mie mie";
}
}
public class JishangShengyao3 : ChongQiWawa
{
public override int GetItemType()
{
return 1;
}
public override string Fuck()
{
return "------";
}
}
public class Girl : Human
{
public override int GetItemType()
{
return 2;
}
public override string Fuck()
{
return "啊,好哥哥,不要啊";
}
}
class Program
{
static void Main(string[] args)
{
Item[] items = new Item[4]
{
new Stone(),
new Sheep(),
new JishangShengyao3(),
new Girl()
};
IFuckableItem girlItem;
for (int i = 0; i < items.Length; ++i)
{
//if (items[i] is Girl)
//{
// Console.WriteLine((items[i] as Girl).Fuck());
//}
if ((girlItem = items[i] as IFuckableItem) != null && girlItem.GetItemType() == 2)
{
Console.WriteLine(girlItem.Fuck());
}
}
Console.ReadLine();
}
}
}
网友评论