gpt4 book ai didi

c# - C# Language Specification 是否明确规定比较必须是同一类型?

转载 作者:行者123 更新时间:2023-11-30 19:04:59 25 4
gpt4 key购买 nike

在搜索“C# Language Specification, Version 5.0”的各种术语时,似乎没有明确声明比较的 LHS 和 RHS 必须是同一类型,或者能够显式转换,或者通过强制类型转换可以显式转换。

搜索的词和短语包括转换、转换、隐式、显式、if 语句,等等

凭直觉,人们不会将苹果与橙子进行比较;不管怎样,令人惊讶的是(对我来说),据我所知,这在 C# 语言规范中没有明确说明。

最佳答案

Does the C# Language Specification explicitly state that comparison must be of the same type?

没有。比较运算符 -- < <= > >= == != -- 两边不需要有相同类型的操作数。事实上,操作数不需要有类型。 foo >= null是完全合法的,但是 null没有类型。

Intuitively, one does not compare apples to oranges; regardless, surprisingly (to me), AFAIK this is not explicitly stated in the C# Language Specification.

直觉上人们是否希望能够将整数与短裤、短裤与小数进行比较,等等?人们是否期望能够将可为空的整数与整数进行比较?如果经理是一种人,那么能够问“这个经理和这个人是同一个人吗?”是否有意义?我认为比较运算符的操作数不需要是同一类型,无论是在编译时还是在运行时,这在直觉上都是显而易见的。

关于c# - C# Language Specification 是否明确规定比较必须是同一类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34073222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com