C#提供了两种技术来实现静态多态性-
函数重载
运算符重载
具有相同名称但参数不同的两个或两个以上方法在C#中称为函数重载。
可以通过更改参数的数量和参数的数据类型来执行C#中的函数重载。
假设您有一个输出数字乘法的函数,那么我们的重载方法将具有相同的名称,但参数数量不同-
public static int mulDisplay(int one, int two) { } public static int mulDisplay(int one, int two, int three) { } public static int mulDisplay(int one, int two, int three, int four) { }
以下是显示如何实现函数重载的示例-
using System; public class Demo { public static int mulDisplay(int one, int two) { return one * two; } public static int mulDisplay(int one, int two, int three) { return one * two * three; } public static int mulDisplay(int one, int two, int three, int four) { return one * two * three * four; } } public class Program { public static void Main() { Console.WriteLine("Multiplication of two numbers: "+Demo.mulDisplay(10, 15)); Console.WriteLine("Multiplication of three numbers: "+Demo.mulDisplay(8, 13, 20)); Console.WriteLine("Multiplication of four numbers: "+Demo.mulDisplay(3, 7, 10, 7)); } }
输出结果
Multiplication of two numbers: 150 Multiplication of three numbers: 2080 Multiplication of four numbers: 1470
重载运算符是具有特殊名称的函数,关键字运算符紧随其后是所定义的运算符的符号。
以下显示了哪些运算符可以重载,哪些不能重载-
序号 | 运算符和说明 |
---|---|
1 | +,-,!,〜,++,- 这些一元运算符采用一个操作数,并且可以重载。 |
2 | +,-,*,/,% 这些二进制运算符采用一个操作数,并且可以重载。 |
3 | ==,!=,<,>,<=,> = 比较运算符可以重载。 |
4 | &&,|| 条件逻辑运算符不能直接重载。 |
5 | + =,-=,* =,/ =,%= 赋值运算符不能重载。 |
6 | =,。,?:,-<,new,is,sizeof,typeof 这些运算符不能重载 |