Veritabanlarına bir null değeri yüklemek gibi (örneğin aşağıdaki gibi), null olması gerektiğinde değerleri sınıflara ve yapılara yüklerken çok fazla Nullable<T>
türünü kullanıyorum.Döküm (int?) Null vs new int?() - Hangisi daha iyi?
bu kod parçasını inceleyin: Bazen bunu yapmak, bir null mülkte bir değer yüklemek gerekir
public class InfoObject
{
public int? UserID { get; set; }
}
// Load the ID into an SqlInt32
SqlInt32 userID = reader.GetSqlInt32(reader.GetOrdinal("intUserID"));
:
BazeninfoObject.UserID = userID.IsNull ? (int?)null : userID.Value;
yerine bunu:
Aynı sonucu elde etmelerine rağmen, 012 arasında hangisinin daha iyi olduğunu bilen birinin olup olmadığını görmek isterimve new int?()
, performans, en küçük IL kodu, en iyi uygulamalar vb.
new int?()
versiyonunu lehine oldum ama
(int?)null
döküm
new int?()
daha çözmek için derleyici için hızlı olup olmadığından emin değilim.
Şerefe!
Sana katılıyorum. '(int?) null',' new int?() 'den çok daha iyi görünüyor, özellikle de örnek gösterilerim gibi çevrimiçi koşullu ifadelerde kullanıldığında. Sorunuzla ilgili olarak: IL'nin aynı olduğunu söylediğinde yanıtladınız. Oluşturma süreleri şu anda bir sorun değil (TFSBuild kullanmam sürece, ancak bu tamamen farklı bir hikaye) IL eşleşecek kadar uzun, mutluyum :) – Codesleuth
Benim favorim (çok yakın bir ikinci sürüm olarak) varsayılan (int?) 'dir. – sblom