这是一个纯粹的学术问题,但是在lambda表达式中使用==和.Equals以及首选哪一个有什么区别?
代码示例:
int categoryId = -1;
listOfCategories.FindAll(o => o.CategoryId == categoryId);
Run Code Online (Sandbox Code Playgroud)
要么
int categoryId = -1;
listOfCategories.FindAll(o => o.CategoryId.Equals(categoryId));
Run Code Online (Sandbox Code Playgroud)
对于引用类型,==旨在传递引用相等性 - 这两个变量是否引用相同的对象实例.
.Equals()旨在传达值相等 - 两个变量引用的两个可能不同的对象实例具有相同的值,对于通过重载方法提供的"相同"的某些定义.
对于价值类型,这两个含义是模糊的.
| 归档时间: |
|
| 查看次数: |
10222 次 |
| 最近记录: |