C# C语言中隐式变量赋值的例子#

C# C语言中隐式变量赋值的例子#,c#,implicit-conversion,C#,Implicit Conversion,我注意到你可以用C做这种事情: 请注意,字符串值被隐式转换为不同的类型。还有其他地方可以这样做吗?关于这类事情,有哪些常见的模式和实践?只要定义了,就会发生这种情况。总而言之,这是非常罕见的。这应该会有所帮助 编辑:Matt ninja'd it:)令人惊讶的是,我第一次在about C#Conversion operators上看到这个,我以前从未见过有人使用过这个。似乎这会损害可读性并使许多开发人员感到困惑…基本上,XNamespace提供了一个执行隐式转换的操作符 我想大多数常识指南都适

我注意到你可以用C做这种事情:


请注意,字符串值被隐式转换为不同的类型。还有其他地方可以这样做吗?关于这类事情,有哪些常见的模式和实践?

只要定义了,就会发生这种情况。总而言之,这是非常罕见的。

这应该会有所帮助


编辑:Matt ninja'd it:)

令人惊讶的是,我第一次在about C#Conversion operators上看到这个,我以前从未见过有人使用过这个。似乎这会损害可读性并使许多开发人员感到困惑…

基本上,XNamespace提供了一个执行隐式转换的操作符

我想大多数常识指南都适用,只在有意义的地方使用,避免混淆。最大的问题是意外的隐式转换,这可能会导致编程错误。您可以避免这种情况,并且仍然使用显式转换运算符提供转换

您希望使用显式转换运算符而不是隐式转换运算符的示例是允许从浮点类型转换的整数类;隐式转换将隐藏必须发生的截断/舍入,因此可能会让用户非常困惑(并且可能是bug的来源)

在我的代码中,我已经多次使用它,例如在一个非常简单的验证结果结构中,它提供了到bool(但不是从)的隐式转换。这让我可以做
如果(结果){…}
(但陪审团仍然不知道这是否有用:)


我猜它的大部分用途是用于“简单”数据类型,如大整数、小数等。

根据我的经验,它只会让不知道这种可能性的人感到困惑。一旦您知道上面的代码是合法的,并且隐式转换是可能的,那么很明显存在隐式转换操作符。这种转换无论如何都要少用。将结构转换为布尔的有趣用法。
XNamespace c = "http://s.opencalais.com/1/pred/";