我有點新的反思,所以原諒我,如果這是一個更基本的問題我正在編寫一個程序在C#中,並試圖編寫一個通用的空或空檢查方法 到目前爲止代碼讀取,使用反射投出一個對象
public static class EmptyNull
{
public static bool EmptyNullChecker(Object o)
{
try
{
var ob = (object[]) o;
if (ob == null || !ob.Any())
return true;
}
catch (Exception e)// i could use genercs to figure out if this a array but //figured i just catch the exception
{Console.WriteLine(e);}
try
{
if (o.GetType().GetGenericTypeDefinition().Equals("System.Collections.Generic.List`1[T]"))
//the following line is where the code goes haywire
var ob = (List<o.GetType().GetGenericArguments()[0].ReflectedType>)o;
if (ob == null || !ob.Any())
return true;
}
catch (Exception e)
{ Console.WriteLine(e); }
return o == null || o.ToString().Equals("");//the only thing that can return "" after a toString() is a string that ="", if its null will return objects placeMarker
}
}
現在顯然是一個列表,我需要一種方法來弄清楚它是什麼類型的泛型列表的,所以我想使用反射來弄明白,再與該反射投正是這種可能
謝謝
不管你做什麼,移動測試空頂部的啓發。你現在有各種空解除引用。 – 2012-07-09 23:57:30
這些對象來自哪裏,你失去了所有類型的信息? – bmm6o 2012-07-10 00:00:27
任何地方我真的不在乎它只是一個通用的方法,我可以用我的程序來快速找出這個對象,即時處理是空的還是空的 - 而不是寫出我使用的每個特定項目的支票 – 2012-07-10 00:02:36