木子屋 Dnawo's BLOG

C#函数重载与委托

👤 dnawo 📅 2007-12-02 👁 5405 👍 0 💬 0 🔄 本站原创
同一个函数,根据不同的参数执行不同的操作叫函数重载;
相同的参数,在不同场合可调用不同的函数来操作叫委托;

同一个函数,既可对int数组求最大值,也可对double数组求最大值,这是重载;
同一个int数组,既可对它们求最大值,也可对他们求最小值,这是委托;

函数重载:
static void Main(string[] args)
{
	int[] i = { 3, 9, 4, 5, 6, 14, 7, 10 };
	Console.WriteLine(MaxValue(i)); //求int数组最大值
	double[] j ={ 2.1, 3.4, 5, 8.8, 7.2, 5.6 };
	Console.WriteLine(MaxValue(j)); //求double数组最大值
	Console.ReadKey();
}
static int MaxValue(int[] intArray)
{
	int maxValue = intArray[0];
	for (int i = 0; i < intArray.Length; i++)
	{
		if (intArray[i] > maxValue) maxValue = intArray[i];
	}
	return maxValue;
}
static double MaxValue(double[] doubleArray)
{
	double maxValue = doubleArray[0];
	for (int i = 0; i < doubleArray.Length; i++)
	{
		if (doubleArray[i] > maxValue) maxValue = doubleArray[i];
	}
	return maxValue;
}

函数委托:
delegate int MaxOrMin(int[] intArray);
static void Main(string[] args)
{
	int[] i = { 3, 9, 4, 5, 6, 14, 7, 10 };
	MaxOrMin maxOrMin = new MaxOrMin(MaxValue); //调用MaxValue函数来求最大值
	Console.WriteLine(maxOrMin(i));
	maxOrMin = new MaxOrMin(MinValue); //调用MinValue函数来求最小值
	Console.WriteLine(maxOrMin(i)); //求最大和最小都是用maxOrMin!
	Console.ReadKey();
}
static int MaxValue(int[] intArray)
{
	int maxValue = intArray[0];
	for (int i = 0; i < intArray.Length; i++)
	{
		if (intArray[i] > maxValue) maxValue = intArray[i];
	}
	return maxValue;
}
static int MinValue(int[] intArray)
{
	int minValue = intArray[0];
	for (int i = 0; i < intArray.Length; i++)
	{
		if (intArray[i] < minValue) minValue = intArray[i];
	}
	return minValue;
}

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 函数重载:C# VS JS 下一篇 → 一接通电源机子自动开机