Nasıl eğer bir nesnenin null olup olmadığını kontrol etmek için?
Nasıl belirli bir nesne aşağıdaki yöntemi uygulamak için nasıl başka bir deyişle null olup olmadığını kontrol yapın
bool IsNullableValueType(object o)
{
...
}
EDİT: NULL değer türleri arıyorum. Akılda ref tür yoktu.
//Note: This is just a sample. The code has been simplified
//to fit in a post.
public class BoolContainer
{
bool? myBool = true;
}
var bc = new BoolContainer();
const BindingFlags bindingFlags = BindingFlags.Public
| BindingFlags.NonPublic
| BindingFlags.Instance
;
object obj;
object o = (object)bc;
foreach (var fieldInfo in o.GetType().GetFields(bindingFlags))
{
obj = (object)fieldInfo.GetValue(o);
}
n artık değeri true
eşit türde bir nesne bool
(System.Boolean
) anlamına gelir. Ben gerçekten ne istediğini 8* *türü bir nesne oldu
Ben geçici bir çözüm eğer o null olup olmadığını kontrol etmek için karar verdi ve n etrafında null bir sarıcı oluşturmak gibi.
CEVAP
Null iki tür - Nullable<T>
ve referans tipi vardır.
Jon sert kutulu tip olduğunu söyleyerek beni düzeltti, ama jenerik ile:
- ne aşağıda. Bu aslında test tipi T
, * obj
parametre için sadece genel tür kesmesi (kolay arama) - işe yarayacaktır neredeyse aynı olmadan obj
param olsa da.
static bool IsNullable<T>(T obj)
{
if (obj == null) return true; // obvious
Type type = typeof(T);
if (!type.IsValueType) return true; // ref-type
if (Nullable.GetUnderlyingType(type) != null) return true; // Nullable<T>
return false; // value-type
}
Ama bu zaten bir nesne değişkeni değerini kutulu varsa pek işe yaramaz.
Java eğer herhangi bir sonuç olup olma...
Nasıl eğer bir element, bir dizi içind...
nasıl eğer Alıcı android kayıtlı olup ...
Eğer kullanıcı giriş olup olmadığını k...
Nasıl eğer belirli bir dizin Ruby olup...