C#之接口介绍
什么是接口呢?
在生活中大家其实接触过不少接口的例子,比如手机充电器有micro USB,Type-C,lighting等,电源线有两头,三头,使用正确的插头就能够插到对应的接口中,但是如果不匹配,就不能契合.

此处引用微软C#文档对于接口的定义:

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/interface
所谓接口,就是需要实现类必须实现指定的方法和属性.
说回代码中,我举一个例子,假设我们有一家饭店,我们要招聘能做菜的厨师,可能有的小伙伴会这么写代码:

很好,那么让我们用代码模拟开店,会发生什么呢?

先使用创造者之力实例化一个工具人,然后招聘他,完美,没有报错.
但是这个厨师除了顶着一个厨师的头衔之外,什么能力都没有,是个无能力者,那么,让我们赋予他一项能力吧:

很好,这下我们在招聘的时候就能检查应聘人员的厨艺了.本期专栏到此结束

我们的饭店成功开张了,过了段时间,我们需要招聘新的厨师,但是来的却和之前的厨师不一样,怎么回事呢?这个时候,我们就需要完善一下世界观(重构代码):

不好,程序报错了,工具人二号没有通过招聘,这时候他十分不满:你是不是看不起我?我也会做菜,为什么不要我,就因为我是工具人吗?
我们来检查一下这段,虽然江湖菜厨师也会做菜,但是因为我们在写招聘函数的时候,对参数固定为了厨师类,所以当我们传入一个江湖菜厨师类型的时候,程序就会报错了,这种时候,我们可以像下面这样优化代码:

将接口引入我们的代码之后,将函数的传入参数改为接口类型,这样一来,实现了做菜接口的厨师类和江湖菜厨师都可以成功通过招聘的.

有一天我们的饭店来了几个神秘人,说他们也要来应聘,但是恰好我们的招聘官拉肚子来不了,不能直接判断应聘者的能力,这个时候我们就只好重新再写一个函数来检测他们的实力了,世界观再度扩展(代码重构)

如上图所示,我们可以通过 is 关键字来判断变量是否属于指定类型,用在接口上的话,就是判断该变量是否属于实现了对应接口的类.

我们还可以用 as 关键字来实现类型转换,如果不能成功转换,会返回 null

不过好像混进了一些奇怪的家伙.
就先到这里吧.