下面的反射代码返回:
System.Collections.Generic.IList`1[TestReflection.Car] Cars
Run Code Online (Sandbox Code Playgroud)
如何Cars通过反射获得根类型?不IList<Car>- 我怎么能得到Car?
using System;
using System.Reflection;
using System.Collections.Generic;
namespace TestReflection
{
class MainClass
{
public static void Main(string[] args)
{
Type t = typeof(Dealer);
MemberInfo[] mi = t.GetMember("Cars");
Console.WriteLine("{0}", mi[0].ToString());
Console.ReadLine();
}
}
class Dealer
{
public IList<Car> Cars { get; set; }
}
class Car
{
public string CarModel { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud) 请参见下面的类结构:
public interface ISport { ... }
public class Football: ISport { … }
public class Running : ISport { … }
Run Code Online (Sandbox Code Playgroud)
和下面的客户端代码:
List<ISport> sports = new List<ISport>();
sports.Add(new Football());
sports.Add(new Running());
bool containsFootball = sports.Contains(typeof(Running));
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
“无法从system.type转换为ISport”。
怎么解决?