我寫了下面的方法從序列化類的列表返回不可序列化的類(LINQ類)的列表(波蘇斯):C#泛型
List<UnSerializableEntity> ToListOfUnserializables(List<SerializableEntity> entityList)
{
var tempList = new List<UnSerializableEntity>();
entityList.ForEach(e =>
{
if (e != null)
{
tempList.Add(ConvertFromSerializableToUnserializable(e));
}
});
return tempList;
}
現在,ReSharper的具有「抱怨」這個行:if (e != null)
,並建議將其改成這樣:
if (!Equals(e, default(SerializableEntity)))
我的問題是什麼這種變化實際上改善或防止發生?,我知道在這種情況下的默認關鍵字必須做一些泛型,但我不確定它代表什麼。
PS。 UnSerializableEntity
和SerializableEntity
是類泛型。
但他的if語句檢查值是_not_ null,所以這將意味着它會總是執行? – sisve 2009-04-10 14:50:44
「if」塊永遠不會執行:值類型將拋出異常。 – 2009-04-10 14:54:07
@Simon語句e!= null和!Equals(e,default(SerializableEntity))在e不爲空時爲true/default – 2009-04-10 15:07:20