XIAOJINJIN

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在C#中的接口的使用,可实现如C++那样 类的多态性承接使用 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
   public interface IPersionMsg
    {
        int iPermission { get; set; }
        string strCurID { get; set; }
    }
    public class MemoryRecord:IPersionMsg
    {
        public int iPermission { get; set; }
        public string strCurID { get; set; }
        public int INum = 0;
        public string addr = "";
       
    }
    public class RecallRecord:IPersionMsg
    {
        List<IPersionMsg> _persionMsgs = new List<IPersionMsg>();
        public int iPermission { get; set; }
        public string strCurID { get; set; }
        public void CreateObj(IPersionMsg persionMsg)
        {
            _persionMsgs.Add(persionMsg);
            Console.WriteLine(persionMsg.strCurID);
        }
        public IPersionMsg RebackObject(string strID )
        {
            for (int i = 0; i < _persionMsgs.Count; i++)
            {
                if (_persionMsgs[i].strCurID.Equals(strID))
                {
                    Console.WriteLine(_persionMsgs[i].iPermission);
                    Console.WriteLine(_persionMsgs[i].strCurID);
                    return _persionMsgs[i];
                }
            }
            return null;
        }
    }
   
}
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            RecallRecord recallRecord = new RecallRecord();
            MemoryRecord memoryRecord = new MemoryRecord() { addr = "Rad1", INum = 10, iPermission = 10010, strCurID = "1" };
          
            memoryRecord = new MemoryRecord() { addr = "Rad1", INum = 10, iPermission = 10010, strCurID = "1" };
            recallRecord.CreateObj(memoryRecord);
            memoryRecord = new MemoryRecord() { addr = "Rad1", INum = 20, iPermission = 20010, strCurID = "2" };
            recallRecord.CreateObj(memoryRecord);
            memoryRecord = new MemoryRecord() { addr = "Rad1", INum = 30, iPermission = 30010, strCurID = "3" };
            recallRecord.CreateObj(memoryRecord);
            memoryRecord = new MemoryRecord() { addr = "Rad1", INum = 40, iPermission = 40010, strCurID = "4" };
            recallRecord.CreateObj(memoryRecord);
            memoryRecord = new MemoryRecord() { addr = "Rad1", INum = 50, iPermission = 50010, strCurID = "5" };
            recallRecord.CreateObj(memoryRecord);
            Console.ReadKey();
            for (int i = 0; i < 5; i++)
            {
                recallRecord.RebackObject(i.ToString());
            }
            Console.ReadKey();
        }
    }
}

 

posted on 2020-04-24 10:33  XIAOJINJIN  阅读(94)  评论(0)    收藏  举报