![]() |
1
85
如前所述,这是不允许的,我认为这是非常合理的。 但是,要添加更多详细信息,这里是来自 C# 4.0 Specification 第21.1节:
|
![]() |
2
171
不。 解决方法是使用另一种方法 不 有out/ref参数,它只调用当前方法。
更新:如果有 C# 7.0 ,您可以简化:
(感谢@oskar/@reiner指出这一点。) |
![]() |
3
61
不,但另一个很好的选择是让方法对可选参数使用通用模板类,如下所示:
然后您可以使用它,如下所示:
|
![]() |
4
26
实际上有一种方法可以做到这一点,这是C所允许的。这会回到C++,而违背了C语言的好的面向对象结构。 小心使用此方法! 下面是用可选参数声明和编写函数的方法:
然后这样调用函数:
要编译此代码,需要在项目选项中启用不安全代码。这是一个通常不应该使用的非常简单的解决方案,但是如果您需要一些奇怪的、神秘的、管理层启发的决策,在C中确实需要一个可选的out参数,那么这将允许您这样做。 |
![]() |
5
5
Icemi:包含在C 7.0的新功能中枚举 here 现在允许将“discards”作为a_u形式的out参数,让您忽略不关心的out参数:
另外,如果您还对“out var x”这一部分感到困惑,请阅读链接上关于“out variables”的新功能。 |
![]() |
6
1
不,但您可以使用委托(例如
在某种程度上受到Robin R回答的启发,当我面对一个我认为需要可选out参数的情况时,我使用了
这样做的好处是,可选变量作为普通int出现在源代码中(编译器将其包装在一个闭包类中,而不是显式包装在用户定义的类中)。
变量需要显式初始化,因为编译器不能假定
它不适用于所有用例,但对于我的实际用例(为单元测试提供数据的函数,以及新的单元测试需要访问返回值中不存在的某些内部状态的函数)效果良好。 |
![]() |
7
-2
像这样怎么样?
您仍然需要从C向参数传递一个值,但它是一个可选的引用参数。 |
![]() |
8
-4
|
![]() |
Alvaromon · 如何在C#[重复]中传递作为结构的可选参数 7 年前 |
![]() |
Bharath M Shetty · 如何一次将所有默认参数值设置为无 8 年前 |
![]() |
Dima Deplov · Swift:如何将函数类型值设置为可选变量? 10 年前 |
![]() |
shle2821 · Swift期权(?)。两者之间有什么区别? 10 年前 |
![]() |
Mantas · PHP混乱检测器可选参数 11 年前 |
![]() |
Adam · 调用带有可选参数的方法最具Python风格的方法是什么? 12 年前 |