[英]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#中的轉換運算符的信息。
關於擴大/縮小的更多信息:當運算符正在縮小時,這意味着您可能會丟失(某些)數據。 一個很好的例子是從Int64
為Int32
。 如果該值小於Int32
最大值,則Int32
將成功並且該值將保持不變。 但是否則它將失敗。 相反,加寬運算符不會丟失任何數據,即從Int32
為Int64
您始終可以安全地進行操作。
擴展運算符是可以執行轉換而不會丟失精度/信息的運算符。 因此,在C#中將其聲明為隱式運算符是安全的。
因此,C#中的等效項將類似於:
public static implicit operator MyOptionCollection(MyOption[] items)
{
return New MyOptionCollection(items);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.