命名参数简介 - C#4.0






2.72/5 (15投票s)
本文将介绍使用命名参数的优势
引言
C#4.0 引入了命名参数,为开发者提供了更大的灵活性,可以自行决定参数的传递方式。
背景
考虑以下示例,该示例是在较低版本的 .Net 中完成的。
class Program { static void Main(string[] args) { WithoutNamedParameter(10, "SomeName"); WithoutNamedParameter("SomeName",10); Console.ReadKey(true); } private static void WithoutNamedParameter(string name, int age) { Console.WriteLine(string.Format("{0},your age is {1}", name, age)); } private static void WithoutNamedParameter(int age, string name) { Console.WriteLine(string.Format("{0},your age is {1}",name,age)); } }
如您所见,`WithoutNamedParameter` 函数是一个简单的重载方法,它仅接受 2 个参数,且参数类型相同(int 和 string),唯一的区别是参数顺序不同。虽然两种情况下的输出结果相同。
这在实际场景中发生,开发者别无选择,只能创建重载方法。
C#4.0 通过引入命名参数解决了这个问题,开发者可以灵活地使用参数。
使用命名参数解决重载问题
现在让我们看看 C#4.0 如何克服这种情况。考虑以下程序
class Program { static void Main(string[] args) { #region Named Parameter Example WithNamedParameter(Age: 10, Name: "SomeName"); WithNamedParameter(Name: "SomeName", Age: 10); Console.ReadKey(true); #endregion } private static void WithNamedParameter(string Name, int Age) { Console.WriteLine(string.Format("{0}, your age is {1}", Name, Age)); } }
如您所见,在 `WithNamedParameter` 中,我们只需在方法调用中指定参数名称,后跟一个**冒号 (:)**,然后是参数值,而编译器会完成其余的工作。这不是很方便吗?
输出如预期:
结论
在本文中,我们简要了解了命名参数如何帮助开发者避免编写重载方法,并提高代码的可重用性。
非常感谢您对该主题的评论,以便改进该主题。
感谢阅读本文。