相关疑难解决方法(0)

解析是获取成员类型的唯一方法吗?

下面的反射代码返回:

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)

.net c# generics reflection

4
推荐指数
1
解决办法
685
查看次数

查看列表是否包含特定类型

请参见下面的类结构:

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”。

怎么解决?

c#

1
推荐指数
1
解决办法
67
查看次数

标签 统计

c# ×2

.net ×1

generics ×1

reflection ×1