簡體   English   中英

C#中需要可選的VB參數

[英]Optional VB Parameters are required in C#

類似,但有一點扭曲。

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

在調用C#時(不同的解決方案,我復制了.dll

錯誤164方法'MyFunc'沒有重載需要2個參數

元數據顯示的功能是:

public static bool MyFunc(string Name, int Num, ref object obj, int val = 0);

為什么一個Optional通過,而另一個沒有?

C#不支持可選的ref參數。 如果將obj更改為ByValue參數,則應該沒問題。

如果您嘗試在C#中聲明可選的ref參數,則會違反C#4規范的第10.6.1節:

帶有default-argument的 fixed-parameter稱為可選參數

...

refout參數不能具有default-argument

例外情況是COM,其中ref參數非常常見。 當C#編譯器知道它在處理一個COM組件,它可以讓你忽略可選ref參數。

C#不允許使用by-ref可選參數。 這就是原因。

看到這個其他問題+答案:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM