JNF*_*JNF 8 .net c# vb.net optional-parameters
与此类似,但有一点扭曲.
VB函数声明:
Public Shared Function MyFunc(ByVal Name As String, ByVal Num As Integer, Optional ByRef obj As Object = Nothing, Optional ByVal val As Integer = 0) As Boolean
Run Code Online (Sandbox Code Playgroud)
在调用C#时(不同的解决方案,我复制了.dll)
错误164方法'MyFunc'没有重载需要2个参数
元数据显示的功能是:
public static bool MyFunc(string Name, int Num, ref object obj, int val = 0);
Run Code Online (Sandbox Code Playgroud)
为什么一个人Optional通过而另一个没有?
C#不支持可选ref参数.如果你改成obj一个ByValue参数,它应该没问题.
如果您尝试在C#中声明可选ref参数,则会违反C#4规范的第10.6.1节:
甲固定参数用默认参数的被称为一个可选参数.
...
一个
ref或out参数不能有default-argument.
例外情况是COM,其中ref参数非常常见.当C#编译器知道它在处理一个COM组件,它会允许你忽略可选ref参数.
| 归档时间: |
|
| 查看次数: |
2576 次 |
| 最近记录: |