簡體   English   中英

將VB.NET“共享擴展運算符”轉換為c#

[英]Convert VB.NET “Shared Widening Operator” to c#

我已經將此方法從vb.net轉換為c#:

Public Shared Widening Operator CType(ByVal items As MyOption()) As MyOptionCollection
   Return New MyOptionCollection(items)
End Operator

我的抱怨是我不知道此功能可以完成什么。 我也想考慮一下它是如何工作的。 我發現“ Wilding Operator”意味着當您投射演員時可以使用,但我認為我沒有完整的含義。

如何將其轉換為C#? 您能不能也請把我送到我能學到什么的地方?

這是一個轉換操作符,它接受MyOption引用的數組並返回對MyOptionCollection對象的引用。 “共享”意味着使用此轉換,您不會丟失任何數據。 “運算符”意味着可以使用特殊語法來調用它。

在C#中, Widening可以替換implicit (altough我認為這是不完全一樣)。 因此它將是:

public static implicit operator MyOptionCollection(MyOption[] items)
{
   return new MyOptionCollection(items);
}

您可以在MSDN上了解有關C#中的轉換運算符的信息。

關於擴大/縮小的更多信息:當運算符正在縮小時,這意味着您可能會丟失(某些)數據。 一個很好的例子是從Int64Int32 如果該值小於Int32最大值,則Int32將成功並且該值將保持不變。 但是否則它將失敗。 相反,加寬運算符不會丟失任何數據,即從Int32Int64您始終可以安全地進行操作。

擴展運算符是可以執行轉換而不會丟失精度/信息的運算符。 因此,在C#中將其聲明為隱式運算符是安全的。

因此,C#中的等效項將類似於:

public static implicit operator MyOptionCollection(MyOption[] items)
{
   return New MyOptionCollection(items);
}

暫無
暫無

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

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