C# internal interface with internal implementation

前端 未结 6 719
南笙
南笙 2020-12-15 15:03

I\'ve struck upon something I don\'t really understand.

I have a project, where I have an interface that is internal. The class that implements that interface is als

6条回答
  •  既然无缘
    2020-12-15 15:46

    To all my knowledge you cannot implement interface methods internal. As you stated you can implement them explicitly but then someone can still do ((IScanner)myScanner).SetHardware(hw)

    Are you 100% sure your MyScanner implementation does not do something like this:

    internal class MyScanner : IScanner
    {
        void IScanner.SetHardware(Hardware hardware) { this.SetHardware(hardware); }
        internal void SetHardware(Hardware hardware)
        {
          ...
        }
        ....
    }
    

    or this:

    internal partial class MyScanner : IScanner
    {
        internal void SetHardware(Hardware hardware)
        {
            ...
        }
    }
    
    internal partial class MyScanner
    {
        void IScanner.SetHardware(Hardware hardware)
        {
            this.SetHardware(hardware);
        }
    }
    

提交回复
热议问题