WCF分布式开发步步为赢(5)服务契约与操作重载
【1】重载概念:
【1.1】什么是重载(OverLoad):
所谓重载是指同一个方法名可以对应着多个方法的实现。这些方法的名字相同,但是方法的参数的类型不同。这就是方法重载的概念。函数方法类和对象的应用尤其重要。
方法重载要求编译器能够唯一地确定调用一个方法时应执行哪个方法代码,即采用哪个方法实现。确定方法实现时,要求从方法参数的个数和类型上来区分。这就是说,进行方法重载时,要求同名方法在参数个数上不同,或者参数类型上不同。否则,将无法实现重载。
关于重载一定要注意:重载方法的参数类型和参数个数一定要不同(即:要么参数的类型不同,要么参数的个数不同,要么参数的类型和个数都不同),否则,编译器就不知道该调用那个方法了。
方法重载的好处就是相同的方法,带来不同的结果和实现,这里我们可以根据传递参数的不同来决定调用的方法。这是编译时多态的一种实现机制。
【1.2】C#类方法重载示例:
我们这里给出一个简单的c#语言实现的方法重载的列子,这里对于SayHelloOverLoading方法,同一个类里给出的三个方法的参数个数不同。内部实现也不同。具体代码如下:
//3.面向对象里的类,如何实现操作重载,和WCF服务类里的操作重载做对比
public class ClassOverLoading
{
public ClassOverLoading()
{
}
//掩饰方法重载,分别实现三个方法,C#等面向对象的语言提供了方法重载机制的支持。
public string SayHelloOverLoading()
{
//编写代码
return "Hello,This an C# class overloading demo";
}
//类里的方法重载不需要别名
public string SayHelloOverLoading(string name)
{
//编写代码
return "Hello:" + name + "This an C# class overloading demo";
}
public string SayHelloOverLoading(string firstName, string lastName)
{
//编写代码
return "Hello:" + firstName + lastName + "This an C# class overloading demo";
}
}
public class ClassOverLoading
{
public ClassOverLoading()
{
}
//掩饰方法重载,分别实现三个方法,C#等面向对象的语言提供了方法重载机制的支持。
public string SayHelloOverLoading()
{
//编写代码
return "Hello,This an C# class overloading demo";
}
//类里的方法重载不需要别名
public string SayHelloOverLoading(string name)
{
//编写代码
return "Hello:" + name + "This an C# class overloading demo";
}
public string SayHelloOverLoading(string firstName, string lastName)
{
//编写代码
return "Hello:" + firstName + lastName + "This an C# class overloading demo";
}
}