C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1076个文字,预计阅读时间需要5分钟。
接口定义了一系列的行为规范,为类型定义了一组Can-Do能力。例如,实现IEnumerable接口定义了GetEnumerator方法,用于获取一个枚举数,支持在集合上进行迭代。这也是我们常说的可枚举。
接口定义了一系列的行为规范,为类型定义一种Can-Do的功能。例如,实现IEnumerable接口定义了GetEnumerator方法,用于获取一个枚举数,该枚举数支持在集合上进行迭代,也就是我们常说的foreach。接口只是定义行为,具体的实现需要由具体类型负责,实现接口的方法又分为隐式实现与显示实现。
一、隐式/显示实现接口方法
简单的说,我们平时“默认”使用的都是隐式的实现方式。例如:
interface ILog { void Log(); } public class FileLogger : ILog { public void Log() { Console.WriteLine("记录到文件!"); } }
隐式实现很简单,通常我们约定接口命名以 I 开头,方便阅读。接口内的方法不需要用public,编译器会自动加上。类型中实现接口的方法只能是public,也可以定义成虚方法,由子类重写。现在看显示实现的方式:
public class EventLogger : ILog { void ILog.Log() { Console.WriteLine("记录到系统事件!"); } }
与上面不同的是,方法用了ILog指明,而且没有(也不能有)public或者private修饰符。
本文共计1076个文字,预计阅读时间需要5分钟。
接口定义了一系列的行为规范,为类型定义了一组Can-Do能力。例如,实现IEnumerable接口定义了GetEnumerator方法,用于获取一个枚举数,支持在集合上进行迭代。这也是我们常说的可枚举。
接口定义了一系列的行为规范,为类型定义一种Can-Do的功能。例如,实现IEnumerable接口定义了GetEnumerator方法,用于获取一个枚举数,该枚举数支持在集合上进行迭代,也就是我们常说的foreach。接口只是定义行为,具体的实现需要由具体类型负责,实现接口的方法又分为隐式实现与显示实现。
一、隐式/显示实现接口方法
简单的说,我们平时“默认”使用的都是隐式的实现方式。例如:
interface ILog { void Log(); } public class FileLogger : ILog { public void Log() { Console.WriteLine("记录到文件!"); } }
隐式实现很简单,通常我们约定接口命名以 I 开头,方便阅读。接口内的方法不需要用public,编译器会自动加上。类型中实现接口的方法只能是public,也可以定义成虚方法,由子类重写。现在看显示实现的方式:
public class EventLogger : ILog { void ILog.Log() { Console.WriteLine("记录到系统事件!"); } }
与上面不同的是,方法用了ILog指明,而且没有(也不能有)public或者private修饰符。

