使用后期绑定获取List <T>值

use*_*728 13 .net c# list

我有一个List<T>变量,其中T在编译时是未知的.我需要像这样访问value类型的属性T

foreach(var item in items) // items is List<T>
{
    item.value // this won't compile because T is unknown 
}
Run Code Online (Sandbox Code Playgroud)

我知道<T>在我的情况下会有value财产.我该如何访问它?

Tza*_*ama 10

如果您知道每个T都有VALUE,您可以使用dynamic而不是var

foreach(dynamic item in items) //items is List<T>
{
    item.VALUE
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然这可能有用,但我通常不会为了让它消失而在一个问题上"投掷动态".根本问题在于设计,应该使用接口来解决. (15认同)
  • intellisense不会告诉你`item.value`存在.但是,它将在运行时编译和工作(如果`item.value`不存在,那么您将获得运行时异常 (3认同)