zoukankan      html  css  js  c++  java
  • C#接口的理解

    首先接口的语法定义:
    接口用来描述一种程序的规定,接口描述可属于任何类或结构的一组相关行为。实现接口的类或结构要与接口的定义严格一致。接口可由方法、属性、事件、索引器或这4种成员类型的任何组合构成。接口不能包含字段。接口成员一定是公共的。

    注意事项:

    1、接口名称必须使用大写字母“I”开头,如Icompute,IChoose。

    2、接口的访问修饰符可以选择使用,但是接口的方法前不能添加任何访问修饰符,它是隐式公开的。
    3、接口中可以声明索引器,属性和方法,但不能包含字段,构造函数和常量等。
    4、接口不能实现任何方法,属性和索引器。
    5、接口中不能包含构造函数。
    6、在定义方法时,只要给出返回类型,名称和参数列表,用分号结束即可。

    除了上面的定义外,在实际的项目中往往会迷茫,什么时候用接口,怎么用能够让架构和代码更合理,都需要一次次的思考和踩坑。有些时候,不要为了用接口而用接口,说出来我用接口了,感觉很高大上,最后发现接口没有实际意义,反而增加的代码量。

    个人理解接口的作用分三个:(记录更多是为了加深印象,自己的理解也是网上查看了写资料后,总结的,肯定有不足的,望指正)

    1.是对具有公共特性或行为的类的描述,如下面这样:

    例子:我要写一个打印程序,但是面临的问题是必须使用不同的打印机,有HP的,IBM的、Epsom的等等。但是针对每一个打印机的程序只有2个必须要用到的函数,Print(),PrintPreview(),这两个函数不同的打印机里面的具体实现代码是不一样的,但是从主程序的角度来看是无所谓的,因为主程序只是要调用一下Print和Print……。

    不过这种例子,有点理想化,实际中很少有这种情况

    2.是对一些类需要添加一定的约束或必须要实现的属性或方法,如下面这样:

    我需要如果继承接口的类,必须有name属性,而不是内容一样,但却不同名字的Name、UserName什么的

    3.团队分工开发时,遇到需要调用其他人的方法,但还没完成时,可以先定义接口使用,后面让对方继承并实现

  • 相关阅读:
    Codeforces Round #592 (Div. 2)C. The Football Season(暴力,循环节)
    Educational Codeforces Round 72 (Rated for Div. 2)D. Coloring Edges(想法)
    扩展KMP
    poj 1699 Best Sequence(dfs)
    KMP(思路分析)
    poj 1950 Dessert(dfs)
    poj 3278 Catch That Cow(BFS)
    素数环(回溯)
    sort与qsort
    poj 1952 buy low buy lower(DP)
  • 原文地址:https://www.cnblogs.com/dachuang/p/14958029.html
Copyright © 2011-2022 走看看