请问:当接口作为函数参数的时候,代表什么意思?
解决方案 »
- asp.net中动态增减改变web控件
- 请教+散分:99乘法表
- 求助啊,基本问题,可真的卡住我啦,谁帮帮我啊!!!怎么样在一个事件里引用别的控件的事件啊!!!在线等啊!!!
- 关于C#的一个奇怪的问题,郁闷的几天了...
- 有关IIF的问题,高分请教!!!
- 怎样在没有安装vs.net2003的win2003server服务器上建立调试.net程序的环境呢?
- 怎样能在点击标题栏上的关闭按钮时不关闭窗口,而改为让窗口最小化
- [讨论]<< Programming Microsoft Windows with C# >>
- 我想用C#写一个数据上传和下载的应用,请教运用的技术和思路!
- 为什么在一个类A中调用另一个类B的函数,A类中不用定义B类的实例,即可B类中的函数
- 关于一个树型递归算法 ! 高手来研究下! 谢谢!急用!
- 正则表达式的问题
{
string name;
string passwrod;
}内部逻辑: checkuser(接口icheckuser user)
{
if(user.name=="" && user.password=="")
{
//do something
}
}当你在页面也继承该接口实现(页面和内部类都继承同一接口,这样可以保证程序员都使用同样的规范)
这样调用代码就可以规范成:
form :Icheckuser //继承并实现接口string name{
get{return TextBox1.Text;}
set {TextBox1.Text=value;}
}string password{
get{return TextBox2.Text;}
set {TextBox2.Text=value;}
}
checkuser((Icheckuser)this); //这里你不用管内部是如何的,你只管实现你自己该管的事情就行了
interface IMove
{
void Move();
}
对于人,动物来说都可以Move所以
class Person : IMove
[
public void Move()
{
Console.WriteLine("Person move.");
}
}
class Animal: IMove
[
public void Move()
{
Console.WriteLine("Animal move.");
}
}
这是你可以这样调用IMove接口
public Test
{
public void Run(IMove obj)
{
obj.Move();
}
}
如果这是你的需求变了,比如又增加了Car类
class Car: IMove
[
public void Move()
{
Console.WriteLine("Car move.");
}
}
因为你是针对接口编程的,所以你不需要关心Car或者外星人或者火箭类,这既是面向对象的ocp原则,对修改关闭(针对Run方法)对扩展开发(针对新增的汽车,外星人,火箭类)
Icheckuser user=(Icheckuser)this//这里不是new而是接口转换,this是在前面new的interface(接口)
[attributes] [modifiers] interface identifier [:base-list] {interface-body}[;]
一个接口定义一个协定。实现接口的类或结构必须遵守其协定。接口可以从多个基接口继承,而类或结构可以实现多个接口。接口可以包含方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员。接口可以是命名空间或类的成员,并且可以包含下列成员的签名:方法属性 索引器.
一个接口可从一个或多个基接口继承。接口可由类实现。实现的接口的标识符出现在类的基列表中。被继承的接口称为该接口的显式基接口。当接口具有一个或多个显式基接口时,在该接口声明中,接口标识符后跟一个冒号以及由逗号分隔的基接口标识符列表。接口的基接口是显式基接口及其基接口。换言之,基接口集是显式基接口、它们的显式基接口(依此类推)的完全可传递的闭包。接口继承其基接口的所有成员。接口成员是通过 I.M 和 I[A] 形式的成员访问和索引访问表达式访问的,其中 I 是接口类型的实例,M 是该接口类型的方法、属性或事件,A 是索引器参数列表。接口可以由类和结构实现。为了指示类或结构实现接口,在该类或结构的基类列表中包含了接口标识符。在实现类或结构中定位接口成员的实现的过程称为接口映射。