婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2007-7-13
|
本帖最后由 EraserKing 于 2015-8-20 22:11 编辑
首先看接口(interface)和类(class)
接口是一种约定,它约定了实现了这个接口的类需要实现其中的哪些方法,但是并不负责这些方法应当如何实现。
比如说有一个如下的接口- interface IMyInterface
- {
- public void Method1(string str);
- public string Method2(int value);
- }
复制代码 那么对于任意一个实现了该接口的类,需要精确地实现这两个方法(签名一致)- class MyClass: IMyInterface
- {
- public void Method1(string str)
- {
- }
- public string Method2(int value)
- {
- }
- }
复制代码 改动任何签名都会导致编译失败
实际意义么,最简单来说,保证你不会出错,不会少写方法……实际上是一种抽象的概括,说明这个类可以做什么……不同的类实现同样的接口,过程和结果也可以不一样。
C#里,只允许继承一个基类,但是可以继承多个接口,避免了C++里多重继承的混乱。
委托么,有点像C里的函数指针,但是安全
比方说- public delegate int MyDelegate(int val1, int val2); //定义了一个委托,有两个int参数,有int返回值
复制代码 然后我就可以定义下面两个方法,符合上面定义的委托的形式- public int FuncAdd(int val1, int val2)
- {
- return val1 + val2;
- }
- public int FuncDel(int val1, int val2)
- {
- return val1 - val2;
- }
复制代码 然后如下定义委托实例- MyDelegate funcAdd = FuncAdd;
- MyDelegate funcDel = FuncDel;
复制代码 那么此时调用funcAdd/funcDel的结果就等同于FuncAdd/FuncDel
此外,还可以定义一个方法,接受以上的委托- public int Func(MyDelegate myDelegate, int val1, int val2)
- {
- Console.Write(myDelegate(val1, val2).ToString());
- }
复制代码 调用这个方法时,把委托实例传进去。这样,对Func本身不做改动的同时又可以改变程序的行为。- Func(funcAdd, 1 ,2);
- Func(funcDel, 1, 2);
复制代码 后面如果接触到事件(event),就会发现大量的委托的使用。
接口和委托控制IE、Office?那可能你用AHK或者上面有人说的AutoIt比较好,立杆见影。
API应该叫应用程序接口吧……实际上是别的程序暴露出来的可操作的对象(方法)供你调用。和C#里说的接口不是一回事。
至于说输入输出,读取写入存储
这个现成的几个类,StreamReader, StreamWriter, 再不行FileStream自己写起……这个看两眼MSDN就行了。 |
|