[英]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.