Sau đây không biên dịch:Kiểm tra đẳng thức với giá trị mặc định
public void MyMethod<T>(T value)
{
if (value == default(T))
{
// do stuff
}
}
Lỗi: Operator '==' cannot be applied to operands of type 'T' and 'T'
tôi không thể sử dụng value == null
vì T
có thể là một struct.
Tôi không thể sử dụng value.Equals(default(T))
vì value
có thể là null
. Cách thích hợp để kiểm tra tính bình đẳng với giá trị mặc định là gì?
trả lời nhận xét; và để biết thông tin, 'EqualityComparer 'là việc thực hiện tiêu chuẩn được sử dụng bởi BCL, ví dụ trong' Dictionary <,> '. –
có thể trùng lặp của http://stackoverflow.com/questions/65351/null-or-default-comparsion-of-generic-argument-in-c-sharp – nawfal