簡體   English   中英

為什么我們可以對 C# 中的值類型(如 int)應用 ==(相等運算符)?

[英]Why we can apply == (Equality Operator) on value type(like int) in C#?

相等運算符 (==) 是一個引用類型,我們都知道Int32是一個結構體,這意味着它是一個值類型。 我還檢查了Int32的內部,我找不到任何與相等運算符 (==) 相關的Operator Overloading

所以,我的問題是為什么我們可以在Int32上應用==

我還檢查了 decimal 類型,我注意到它有一些Operator Overloading ,所以我們自然可以在 decimal 類型上使用==

在此處輸入圖像描述

根據值類型的相等運算符文檔

如果內置值類型的值相等,則它們的操作數相等

另外,請注意

默認情況下,用戶定義的結構類型不支持==運算符。 要支持==運算符,用戶定義的結構必須重載它。

因此,簡而言之,所有用戶定義的結構都必須定義相等運算符來重載它。 但是所有內置值類型都不需要,它“可以正常工作”。

暫無
暫無

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

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