C#泛型委托实现求最大值方法 - 代码示例与解析
"使用C#泛型委托来实现一个求最大值的方法,以下是一个示例代码:\n\ncsharp\nusing System;\n\npublic delegate T MaxValueDelegate<T>(T a, T b);\n\npublic class Program\n{\n public static void Main(string[] args)\n {\n // 调用求最大值方法\n Console.WriteLine(GetMaxValue(3, 5, MaxValue<int>));\n Console.WriteLine(GetMaxValue(3.5, 2.7, MaxValue<double>));\n Console.WriteLine(GetMaxValue(\"hello\", \"world\", MaxValue<string>));\n }\n\n public static T GetMaxValue<T>(T a, T b, MaxValueDelegate<T> maxDelegate)\n {\n return maxDelegate(a, b);\n }\n\n public static T MaxValue<T>(T a, T b)\n {\n if (Comparer<T>.Default.Compare(a, b) > 0)\n {\n return a;\n }\n else\n {\n return b;\n }\n }\n}\n\n\n在上面的代码中,首先定义了一个泛型委托 MaxValueDelegate<T>,用于表示求最大值的方法。然后,在 GetMaxValue 方法中,接收两个参数 a 和 b,以及一个 MaxValueDelegate<T> 类型的委托参数 maxDelegate。在 GetMaxValue 方法中,直接调用 maxDelegate 委托来求最大值,并返回结果。\n\n在 Main 方法中,演示了如何调用 GetMaxValue 方法来求整数、浮点数和字符串的最大值,分别传入不同类型的 MaxValueDelegate<T> 委托作为参数。
原文地址: https://www.cveoy.top/t/topic/fCV4 著作权归作者所有。请勿转载和采集!