吉安建设公司网站如何创建网站页面
web/
2025/10/1 1:49:18/
文章来源:
吉安建设公司网站,如何创建网站页面,企业网站备案快吗,深圳好的网站建显示接口实现与隐式接口实现 何为显式接口实现、隐式接口实现#xff1f;简单概括#xff0c;使用接口名作为方法名的前缀#xff0c;这称为“显式接口实现”#xff1b;传统的实现方式#xff0c;称为“隐式接口实现”。下面给个例子。 IChineseGreeting接口#xff0c;… 显示接口实现与隐式接口实现 何为显式接口实现、隐式接口实现简单概括使用接口名作为方法名的前缀这称为“显式接口实现”传统的实现方式称为“隐式接口实现”。下面给个例子。 IChineseGreeting接口如果需要具备中文的问好行为需继承此接口。 1 //IChineseGreeting.cs2 3 interface IChineseGreeting4 5 {6 7 void SayHello();8 9 }
10
11
12
13 ChinesePeople类实现IChineseGreeting接口。
14
15
16
17 //ChinesePeople.cs
18
19 class ChinesePeople:IChineseGreeting
20
21 {
22
23 public void SayHello()
24
25 {
26
27 Console.WriteLine(你好!);
28
29 }
30
31
32
33 } 复制代码 这样的实现就是“隐式接口实现”用public关键字作方法的访问修饰符我们通常都是这么做的。 你可以这样调用 ChinesePeople chinese new ChinesePeople();chinese.SayHello(); 复制代码 也可以这样调用 IChineseGreeting otherChinese new ChinesePeople();otherChinese.SayHello(); 复制代码 类和接口都能访问到SayHello()方法。 如果“显式接口实现”就应该是这样。 1 //ChinesePeople.cs 2 3 class ChinesePeople:IChineseGreeting 4 5 { 6 7 void IChineseGreeting.SayHello() //注意接口名限定方法名并且没有public访问修饰符 8 9 { 10 11 Console.WriteLine(你好!); 12 13 } } 复制代码 特别提醒用于实现一个接口的所有方法都必须具有public可访问性。但是假如使用显式接口实现不应该为方法添加一个访问修饰符。 这时你只能这样调用: IChineseGreeting otherChinese new ChinesePeople();otherChinese.SayHello(); 复制代码 不能通过类来调用 ChinesePeople chinese new ChinesePeople();chinese.SayHello(); //错误不能访问。 复制代码 记住显示实现只有接口可以访问。 显示接口实现看起来有点繁琐而且还不能通过类来访问接口方法。为什么还要有“显式实现接口”呢 其实多个接口可能包含具有相同名称、相同返回类型和相同参数的方法。如果一个类实现了多个接口而且接口中的方法具有相同的签名就可以通过显式接口实现来消除它们之间的歧义。显式接口实现标识出哪个方法属于哪个接口。 IEnglishGreeting接口如果需要具备英文的问好行为需继承此接口。 1 //IEnglishGreeting.cs
2
3 interface IEnglishGreeting
4
5 {
6
7 void SayHello();
8
9 } 复制代码 可以发现该接口中的SayHello方法签名和IChineseGreeting接口中一样。 1 class ChinesePeople:IChineseGreeting,IEnglishGreeting2 3 {4 5 void IChineseGreeting.SayHello()6 7 {8 9 Console.WriteLine(你好!);
10
11 }
12
13 void IEnglishGreeting.SayHello()
14
15 {
16
17 Console.WriteLine(Hello!);
18
19 }
20
21
22
23 } 复制代码 可以这样调用 ChinesePeople chinese new ChinesePeople();(chinese as IChineseGreeting).SayHello();(chinese as IEnglishGreeting).SayHello(); 复制代码 ---------------------------------------------------------------------------------------- 此外如果显示实现接口的类中还有该类特有的方法此时会带来一些不便。 例如使ChinesePeople具有Play()方法。 这就带来一个问题要调用SayHello()方法时必须通过接口实现而此时Play()方法就无法访问。因为现在将对象看作IChineseGreeting接口了而接口中没有Play()方法。 同样如果通过类实现就无法访问到SayHello()方法。 必须通过强制转换来解决这个问题。 IChineseGreeting chinese new ChinesePeople();chinese.SayHello();//chinese.Play(); 错误无法访问(chinese as ChinesePeople).Play();//强制转换后可以访问 复制代码 隐式接口实现不存在此问题。 总结: 当类实现一个接口时通常使用隐式接口实现这样可以方便的访问接口方法和类自身具有的方法和属性。当类实现多个接口时并且接口中包含相同的方法签名此时使用显式接口实现。即使没有相同的方法签名仍推荐使用显式接口因为可以标识出哪个方法属于哪个接口。隐式接口实现类和接口都可访问接口中方法。显式接口实现只能通过接口访问。 转载于:https://www.cnblogs.com/xietianjiao/p/7009415.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84767.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!