C# 方法签名以及怎样的两个方法才算是不同的方法
2016-09-30 16:22
435 查看
方法签名由方法名称和一个参数列表(方法的参数个数、顺序和类型)组成。注意:方法的签名并不包括方法的返回值和修饰符。
在C#中,同一个类中的两个或两个以上的方法可以相同的名字,只要他们的参数列表声明不同即可。在这种情况下,该方法就被称为重载(overload),这个过程称为方法重载(method overloading)。方法重载是C#最有用的特性之一。
当一个方法被调用时,C#用方法签名确定调用哪一个方法。因此,每个重载方法的参数列表必须是不同的。虽然每个重载方法可以有不同的返回类型,但是返回值类型并不足以区分所条用的是哪个方法。当C#调用一个重载方法时,参数与调用参数相匹配的那个方法会被执行。
在C#中,同一个类中的两个或两个以上的方法可以相同的名字,只要他们的参数列表声明不同即可。在这种情况下,该方法就被称为重载(overload),这个过程称为方法重载(method overloading)。方法重载是C#最有用的特性之一。
当一个方法被调用时,C#用方法签名确定调用哪一个方法。因此,每个重载方法的参数列表必须是不同的。虽然每个重载方法可以有不同的返回类型,但是返回值类型并不足以区分所条用的是哪个方法。当C#调用一个重载方法时,参数与调用参数相匹配的那个方法会被执行。
① public static int Min(int a,string b) { return 1; } ② public static string Min(int a, string b) //错误提示:已经定义了一个名为Min的具有相同类型参数的成员 { return "1"; } ③ public static void Min(int a, string b) //错误提示:已经定义了一个名为Min的具有相同类型参数的成员 { } ④ private static int Min(int a, string b) //错误提示:已经定义了一个名为Min的具有相同类型参数的成员 { return 1; } ⑤ public int Min(int a, string b) //错误提示:已经定义了一个名为Min的具有相同类型参数的成员 { return 1; } ⑥ public static int Abc(int a,string b) //方法名称不同 { return 1; } ⑦ public static int Min(int a, string b ,int c) //参数列表不同 { return 1; } ⑧ public static int Min(string a, int b) { return 1; } ⑨ public static int Min(string a, char b) { return 1; }①与⑥、⑦、⑧、⑨对比,我们发现他们是不同的方法; ①与②、③、④、⑤对比,我们发现他们是相同的方法。这就说明,只有两个方法的参数列表不同,才是说他们是不同的方法。
相关文章推荐
- C# 在两个不同的方法里面Lock同一个锁对象,是否需要线程等待?
- C#中两个不同时间的相加减以及时间比较
- 总结C# ----后台弹出窗体和打开网页的不同方法,以及关闭网页的方法.
- Server对象有那些属性方法以及怎样使用
- C#基础篇 重写与重载,以及其中设计的虚方法和抽象方法的使用和区别
- c#转换操作符以及重载操作符方法
- 浅谈在Delphi中Dll调试方法以及怎样在Dll中使用数据模块DataModule(或表单Form)
- c#发送邮件.net1.1和.net2.0中的两个方法
- 在C#中,比较两个数组的不同值.输出出来对于日常.NET编程比较实用
- Server对象有那些属性方法以及怎样使用
- C# 随机数中碰到的问题以及解决方法
- C#中遍历TreeView的两个常用方法(转帖)
- 在C#中把两个DataTable连接起来,相当于Sql的Inner Join方法
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- C# WinForm (笨方法)根据不同的样式配置 设置窗体相关控件的背景 以改变窗体风格
- oralce insert 时,出现的两个错误,以及解决方法
- mysql两个表结构相同,如何找出它们的不同记录方法[left join].
- 在C#中把两个DataTable连接起来,相当于Sql的Inner Join方法
- [转]比较高效地实现从两个不同数组中提取相同部分组成新的数组(只支持Int类型) [C#]
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别