首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解决从Unity实现多个接口的实例

解决从Unity实现多个接口的实例
EN

Stack Overflow用户
提问于 2016-06-22 10:24:21
回答 1查看 1K关注 0票数 0

请看我下面的代码

代码语言:javascript
复制
public interface ICoach
    {
        void Test();
    }

    public class Player : IPlayer
    {
        void IPlayer.Run()
        {
            Console.WriteLine(this.Name + "Run");
        }

        void IPlayer.Jump()
        {
            Console.WriteLine(this.Name + ": Jump");
        }

        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }


        public Player(string name)
        {
            Name = name;
        }
    }

    public class Coach : ICoach
    {
        void ICoach.Test()
        {
            Console.WriteLine("Test");
        }
    }

    public class SuperPlayer : ICoach, IPlayer
    {
        private int count = 0;

        public void Test()
        {
            Console.WriteLine("Super player test");
            count++;
        }

        public void Run()
        {
            Console.WriteLine("Super player run");
            count++;
        }

        public void Jump()
        {
            Console.WriteLine("Super player jump");
            count++;
        }

        public void PrintRunTimes()
        {
            Console.WriteLine(string.Format("Super player runs {0} times", count));
        }
    }

container.RegisterType<IPlayer, Player>();
container.RegisterType<ICoach, Coach>();
container.RegisterType<ICoach, SuperPlayer>("super", new ContainerControlledLifetimeManager());
container.RegisterType<IPlayer, SuperPlayer>("super", new ContainerControlledLifetimeManager());

SuperPlayer类实现两个接口: IPlayer和ICoach;Player类实现IPlayer接口,Coach类实现ICoach interafce。

我可以使用超级参数解析SuperPlayer实例。但这是单身。如果我不这样注册,使用超级参数的IPlayer和ICoach解析将返回两个不同的实例。是否有一种方法来解析SuperPlayer实例,而不是单例实例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-22 10:32:08

您可以创建一个新的ISuperPlayer接口,它结合了ICoachIPlayer。然后根据需要实现、注册和解析该接口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37965226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档