2020-03-07【c#】interface 2

2020-03-07  本文已影响0人  持刀的要迟到了

今天看了一个写法。
大概是这个意思:

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();
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读