2009-10-11 31 views
5

olup olmadığını test etme Bilinmeyen bir başvuru veya değer türü örneği verildiğinde, örneğin bu tür için varsayılan değer içerip içermediğini test etmenin herhangi bir yolu var mı? Ben GetType bir çalışma zamanı türü verir çünkü bu işe yaramazsa ... TabiiC# - Bir örnek için türünün varsayılan değeri

bool IsDefaultValue(object value) 
{ 
    return value == default(value.GetType()); 
} 

, böyle bir şey tasavvur ama birileri benzer bir teknik önermek umuyoruz. Teşekkürler.

cevap

9
static bool IsDefaultValue<T>(T input) 
{ 
    return Object.Equals(input, default(T)); 
} 

Not: Eğer açık Nesne atlayıp hemen yapabilecekken genel tür T.

+4

kullanarak eşitlik için == kullanamaz Eşittir (giriş, varsayılan ((T)) –

+0

1: Brian:) Elbette, bu tür bir karşılaştırma için olabildiğince açık olmayı tercih ederim. OP'nin işlevi bir örnek yöntemdir ve biz, Eşittir'in yanlış uygulanmasını aramak istemiyoruz. – Juliet

+0

Harika bir uzantı yöntemi gibi görünüyor. – LJM

İlgili konular