对于我来说,我似乎无法理解什么是可选参数。那么,我的意思是,他们会使用什么样的程序,以及如何使用它们?同样的事情适用于命名参数,我似乎无法完全掌握任何一件事情。我知道可选参数有助于保持重载方法的数量。这就是它。如果有人能帮助我完全理解这些用途/如何使用它们,我将不胜感激。如何在C#4.0中使用可选/命名参数
2
A
回答
0
可选参数是它们的名称:可选参数。
唯一非常重要的是参数的默认值被编译到调用代码中。 这意味着,如果您更改参数的默认值,您也必须重新编译调用程序集,否则它们仍将使用旧的默认值。
0
我通常在许多不同的对象可能调用的方法上使用可选参数。例如,如果你有一个处理一个搜索应用程序,你可能具有PARAMS
List<string> SearchStuff(string searchString, Date startDate, Date endDate);
后来你可能会开始考虑分页并希望将其默认为25倍的结果,但仍然允许呼叫者,以确定它,并可能使用可选的参数来帮助你,像这样:
List<string> SearchStuff(string searchString, Date startDate, Date endDate, int pageSize = 25);
你可以看到的pageSize的是它设置一个值可选。如果需要,调用者可以传递pageSize,或者可以一起忽略它,并使用默认值。
至于命名参数,我不确定我是否已经在C#中使用它们(或者甚至可以)。然而,在Objective-C的,他们都在不断使用:
- (NSString *) getThisFromInteger:(NSInteger)myInteger;
,并呼吁,而不是C#这这将是更多的时候它
[self getThisFromInteger: 24];
调用方法时,你实际上是在打字的命名参数像
self.getThis(24);
希望这有助于一些。
0
John很好地涵盖了可选参数的使用,但是增加了对命名参数的解释:如果您有很多可选参数,如果您想指定第6个参数,则有两个选择:指定所有早期的可选参数,或者使用一个命名参数来设置一个特定的参数。
例子:
public static void sendEmail(string to, string subject, string body, string[] attachmentFiles = null, bool isHTML = false, string onBehalfOf = "", MailPriority priority = MailPriority.Normal, string BCCAddress = null, bool isWeb = false)
如果我想给一个高优先级的邮件我的选择是:
// If we didn't have optional parameters
sendEmail("[email protected]", "Important!", "Something broke - fix it!", null, false, "", MailPriority.High, null, false)
// If we didn't have named parameters
sendEmail("[email protected]", "Important!", "Something broke - fix it!", null, false, "", MailPriority.High)
// Using both optional and named parameters to full advantage.
sendEmail("[email protected]", "Important!", "Something broke - fix it!", priority: MailPriority.High)
最后这三个是更容易使用和日后阅读。
相关问题
- 1. ASP.net 4.0中的可选参数c#
- 2. 在Visual Basic中命名可选参数
- 3. C#4.0可选参数 - 如何指定类型“Guid”的可选参数?
- 4. 我可以在ironpython中使用命名参数和可选参数
- 5. 如何在Ruby 2.0中传递可选的命名参数
- 6. 如何在C#4.0中使用类型作为函数参数?
- 7. 如何在使用Rails命名的路由时使参数可选?
- 8. 有没有办法在2.0中做C#4.0可选参数?
- 9. 在C#4.0中为可选参数提供默认值
- 10. C#4.0,可选参数和参数不能一起工作
- 11. 使用可变长度的未命名的参数命名参数在Python
- 12. 如何使用JAXWS/JAXB命名参数
- 13. 如何命名未使用的参数?
- 14. Rails的url_for命名为可选参数
- 15. MVC2中的可选参数和命名参数,语言规范
- 16. MonoDevelop中的命名参数和可选参数
- 17. 如何忽略可选参数在c#
- 18. 在node.js中使用命名参数
- 19. C#4.0:我可以使用Color作为默认值的可选参数吗?
- 20. 使用命名参数和可选参数来区分构造函数
- 21. Java使用注释命名/可选参数?
- 22. 如何使参数可选?
- 23. 如何在TableAdapter查询中使用命名参数?
- 24. 如何在jooq中使用明确的sql命名参数
- 25. 如何在Adobe AIR中删除多行(使用命名参数)
- 26. 如何在上述场景中使用命名参数?
- 27. 如何在ClojureScript中使用命名参数?
- 28. 如何在Python中动态选择并传递命名参数?
- 29. 命名参数的使用
- 30. 你可以在OdbcCommand中使用命名参数吗?