私はリフレクションに少し慣れていないので、これがより基本的な質問である場合は許してくださいc#でプログラムを作成していて、コードが次のように読み取るまで、一般的なEmptyまたはnullチェッカーメソッドを作成しようとしています
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
}
}
今明らかにリストの場合、それがどのタイプのジェネリックリストであるかを理解する方法が必要なので、リフレクションを使用してそれを理解し、そのリフレクションでキャストしたいのですが、これは可能です
ありがとうございました