C#的显式接口实现

    技术2022-07-17  82

    using System; namespace CSharp { public interface IValueInfo { int Value1Get { get; } int Value2Get { get; } } /// <summary> /// 正常接口实现 /// </summary> public class NormalImpl : IValueInfo { public int Value1Get => 1; public int Value2Get => 2; } /// <summary> /// 显式接口实现 /// </summary> public class ExplicitImpl : IValueInfo { // 不需要写public 因为显式接口实现属于接口,默认就是public的 int IValueInfo.Value1Get => 1; // 不需要写public 因为显式接口实现属于接口,默认就是public的 int IValueInfo.Value2Get => 2; } class Program { static void Main() { NormalImpl n = new NormalImpl(); ExplicitImpl e = new ExplicitImpl(); Console.WriteLine($"Value1:{n.Value1Get}, Value2:{n.Value2Get}"); // Console.WriteLine($"Value1:{e.Value1Get}, Value2:{e.Value2Get}"); // Error !!! // 必须要转换成 IValueInfo 才会调用到 接口成员 Console.WriteLine($"Value1:{((IValueInfo)e).Value1Get}, Value2:{((IValueInfo)e).Value2Get}"); Console.ReadLine(); } } }

     

    Processed: 0.010, SQL: 9