c#接口示例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 1 页
书名:C#接口示例

输出: P2.cs(11,3): error CS0525: Interfaces cannot contain fields 错误!在 C#的接口中不能包含字段例如变量.上面的程序在接口 abc 中声明了一个整 型变量 x.编译将会出错.
c#接口示例.txt婚姻是键盘,太多秩序和规则;爱情是鼠标,一点就通。男人自比主机,内存最重要;女人好似显示器,一切都看得出来。 本文由huijianight贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
书名:C#接口示例

C#接口示例 (第 1 版)
/index.php?topic=763.0

书名:C#接口示例

《C#接口基础》
第一章 介绍 …… 1
第二章
示例 1(P1.cs) :
示例分析
class Demo { public static void Main() { System.Console.WriteLine("Hello Interfaces"); } } interface abc { } 输出: Hello Interfaces 编译运行上面的程序运行程序并显示出期望的结果. 这段程序包含一个 Demo 类程序入 门 Main()方法中打印"Hello Interfaces".在上面的程序中还定义了接口 abc.abc 接口是空的,可以在接口中添加一些元素.
示例 3(P3.cs) :
class Demo { public static void Main() { System.Console.WriteLine("Hello Interfaces"); } } interface abc { void xyz() { System.Console.WriteLine("In xyz"); } } 输出: P3.cs(11,8): error CS0531: 'abc.xyz()': interface members cannot have a definition 这次在接口中定义了 xyz()方法 C#编译器发现了错误.这说明在接口中成员不能有定 义.也就意味着如果在接口 abc 中仅仅只有方法的声明编译器将认为正确?
示例 5(P5.cs) :
class Demo : abc { public static void Main() { System.Console.WriteLine("Hello Interfaces"); } } interface abc { void xyz(); } 输出: P4.cs(1,7): error CS0535: 'Demo' does not implement interface member 'abc.xyz()' P4.cs(11,8): (Location of symbol related to previous error) 在上面的代码中 Demo 和接口 abc 通过"demo : abc"联系在一起,通常对于这个结 合有一点小的误会.类 Demo 需要负责定义接口 abc 中定义的方法原型.因此在上面代码 中的 Demo 没有实现 abc 接口中定义的 xyz 的方法,上面的代码出错.为了修正问题,类 Demo 必须实现接口 abc 中定义的方法原型 xyz.看下面的程序代码.
示例 4(P4.cs) :
class Demo { public static void Main() { System.Console.WriteLine("Hello Interfaces"); } } interface abc { void xyz(); } 输出: Hello Interfaces 上面的程序编译运行正常产生期望的输出结果.最后编译成功.在 C#的接口中仅仅包
第 3 页
书名:C#接口示例
http://www.dingosห้องสมุดไป่ตู้cn
输出: P6.cs(1,7): error CS0536: 'Demo' does not implement interface member 'abc.xyz()'.'Demo.xyz()' is either static, not public, or has the wrong return type. P6.cs(16,8): (Location of symbol related to previous error) P6.cs(7,8): (Location of symbol related to previous error) 又出现错误!类 Demo 实现了方法 xyz 但没有足够的访问权限.在接口 abc 定义的方 法 xyz 的访问权限是 public.看下面的代码.
书名:C#接口示例

refDemo.xyz(); Sample refSample = new Sample(); refSample.xyz(); } public void xyz() { System.Console.WriteLine("In Demo :: xyz"); } } interface abc { void xyz(); } class Sample : abc { public void xyz() { System.Console.WriteLine("In Sample :: xyz"); } } 输出: In Demo :: xyz In Sample :: xyz 上面的程序编译运行成功生产期望的输出结果.refDemo 是类 Demo 的实例. refSample 是类 Sample 的实例.这两个类都实现了接口 abc 因此他们都实现了方法 xyz(). 从程序入口 Main()方法中通过 refDemo 和 refSample 实例分别调用了类 Demo 和类 Sample 的 xyz()方法. 现在有两个不同的类实现了相同的接口此时显示了如何从不同的类中使用相同的接口 引用.
第二章
示例分析 …… 1
示例 1(P1.CS) …… 1 : 示例 2(P2.CS) …… 1 : 示例 3(P3.CS) …… 2 : 示例 4(P4.CS) …… 2 : 示例 5(P5.CS) …… 3 : 示例 6(P6.CS) …… 3 : 示例 7(P7.CS) …… 4 : 示例 8(P8.CS) …… 4 : 示例 9(P9.CS) …… 5 : 示例 10(P10.CS) …… 6 : 示例 11(P11.CS) :…… 7 示例 12(P12.CS) …… 8 : 示例 13(P13.CS) …… 9 : 示例 14(P14.CS) …… 10 : 示例 15(P15.CS) …… 10 : 示例 16(P16.CS) …… 11 : 示例 17(P17.CS) …… 12 : 示例 18(P18.CS) …… 13 : 示例 19(P19.CS) …… 14 : 示例 20(P20.CS) …… 15 :

第 5 页
书名:C#接口示例

public void xyz() { System.Console.WriteLine("In Demo :: xyz"); } } interface abc { void xyz(); } class Sample : abc { public void xyz() { System.Console.WriteLine("In Sample :: xyz"); } } 输出: In Demo :: xyz In Sample :: xyz 上面的代码编译运行程序产生了预期的输出结果.在 Main()方法中定义了接口引用 refabc 是接口 abc 类型.实例化为 Demo 在 refabc 中存储了类 Demo 类定义的 xyz() 可以通过 refabc 来调用.接下去,实例化为 Sample 在 refabc 中存储了类 Sample 类 定义的 xyz()可以通过 refabc 来调用.因此,可以通过共同的接口引用 refabc 来访问 不同的类 Demo 和 Sample 中的 xyz()的方法. 在下面的代码中使用循环调用类 Demo 和 Sample 实现相同接口 abc 使用单一接口引 用 refabc 类型匹配的接口 abc 的类的实现.

第 1 页
书名:C#接口示例

第一章
介绍
C#中的接口提供了一种实现运行时的多态.通过接口可以使用相同接口的引用来访问 实现相同接口的不同类的方法,其实是使用虚方法通过相同的引用调用相同基础的不同的 类. 在开始前先使用简单的短类例子来解释接口的概念, 下面的简短的例子显示接口的特性.
示例 8(P8.cs) :
class Demo : abc { public static void Main() { System.Console.WriteLine("Hello Interfaces"); Demo refDemo = new Demo();
第 4 页
示例 7(P7.cs) :
class Demo : abc { public static void Main() { Demo demo = new Demo(); System.Console.WriteLine("Hello Interfaces"); demo.xyz(); } public void xyz() { System.Console.WriteLine("In xyz"); } } interface abc { void xyz(); } 输出: Hello Interfaces In xyz 好的! 上面的代码编译运行成功产生预期的输出结果. 正如前面提及的接口可以调用实 现相同的接口的不同的类.因此,需要不同的实现相同接口的类.在上面的代码中类 Demo 实现了接口 abc.下面让另一个类 Sample 也实现接口 abc.

第 2 页
书名:C#接口示例

含方法的定义.现在看看方法的作用. 接口是类实现的规范. 也就是说接口规定了方法的原型并有类来实现接口所定义的方法 原型. 因此在类 Demo 和接口 abc 结合在一起.
示例 9(P9.cs) :
class Demo : abc { public static void Main() { System.Console.WriteLine("Hello Interfaces"); abc refabc = null; refabc = new Demo(); refabc.xyz(); refabc = new Sample(); refabc.xyz(); }
示例 6(P6.cs) :
public class Demo : abc { public static void Main() { System.Console.WriteLine("Hello Interfaces"); } void xyz() { System.Console.WriteLine("In xyz"); } } interface abc { void xyz(); }
示例 2(P2.cs) :
class Demo { public static void Main() { System.Console.WriteLine("Hello Interfaces"); } } interface abc { int x; }

相关文档
最新文档