C#中的接口

来源:互联网 发布:mac appstore更换账号 编辑:程序博客网 时间:2024/05/22 09:40

一、使用接口解决什么问题?

假如我们有一下的程序:

class CA {<span style="white-space:pre"></span>public string Name;<span style="white-space:pre"></span>public int age;}class CB{<span style="white-space:pre"></span>public string first;<span style="white-space:pre"></span>public string last;<span style="white-space:pre"></span>public double PersonAge;}class Program
{<span style="white-space:pre"></span>static void PrintInfo(CA item)<span style="white-space:pre"></span>{<span style="white-space:pre"></span><span style="white-space:pre"></span>Console.WriteLine("Name:{0},Age:{1}",item.Name, item.Age):<span style="white-space:pre"></span>}<span style="white-space:pre"></span>static void Main()<span style="white-space:pre"></span>{<span style="white-space:pre"></span>CA a = new CA(){ Name = "John Doe", Age = 35};<span style="white-space:pre"></span>PrintInfo(a);<span style="white-space:pre"></span>}}
在这里,我们只有传入CA才能使PrintInfo正常工作。如果想传入CB就不行。首先,代码中实参必须为CA,另外,CA与CB的结构也不同。为了使代码能更好工作,可以统一接口。代码如下:

interface IInfo{string GetName();string GetAge();}
然后定义CA或者CB时实现这个接口:

class CA:IInfo{...public string GetName() {return Name;}...}

这样,假如实例化了CA和CB,就可以在PrintInfo里直接使用。

PrintInfo(ca);PrintInfo(cb);



0 0
原创粉丝点击