HasValue and != null
] in C#Nullable type of
C# allows nullable values, which can be valid values or null. There are two common ways to check if a nullable value has been assigned:
Nullable.HasValue
] TheHasValue property of
Nullable
indicates whether the value has been assigned. It returns a boolean value, true if the value is non-null, and false if the value is null.
Nullable != null
]This expression also checks whether the nullable value is non-null. It uses the equal sign operator to compare null values with null.
Equivalence in compilation
] The compiler optimizes these checks by replacing the != null
comparison with a call to HasValue
. This means there is no significant difference in performance or functionality between the two approaches.
Preferences
The choice betweenHasValue
and != null
is purely based on readability and preference. Some developers prefer the clarity of HasValue
, while others find the concise != null
is easier to read.
Example
int? a = null;
// 使用 HasValue
if (a.HasValue)
{
// ...
}
// 使用 != null
if (a != null)
{
// ...
}
In short, HasValue
and != null
are both effective ways to check non-null nullable values in C#. The compiler optimizes these checks to have equivalent behavior, making choices a question of developer preferences and code readability.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3