C# 如何在C文件中创建List实例
我参加过以下课程:C# 如何在C文件中创建List实例,c#,list,generics,reflection,C#,List,Generics,Reflection,我参加过以下课程: public class BaseGrid { public int current { get; set; } public int rowCount { get; set; } public int total { get; set; } public List<T> rows { get; set; } } public class Product { public int Id { get; set; }
public class BaseGrid
{
public int current { get; set; }
public int rowCount { get; set; }
public int total { get; set; }
public List<T> rows { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
回到我的控制器,我想做一些类似的事情:
List<Product> listOfProducts = new List<Product>();
BaseGrid baseGrid = new BaseGrid();
baseGrid.rowCount = 10;
baseGrid.total = 20;
baseGrid.current = 1;
baseGrid.rows = listOfProducts;
如何将rows属性变成一个通用列表,并在运行时将baseGrid.rows转换为我想要的任何列表类型
谢谢。听起来你想要的是运行时多态性
public abstract class Animal
{
public abstract void makeSound()
{
Console.WriteLine("[nothing happens]");
}
}
public class Cat : Animal
{
public override void makeSound()
{
Console.WriteLine("Meow");
}
}
public class Dog : Animal
{
public override void makeSound()
{
Console.WriteLine("Woof");
}
}
public static void main(String[] args)
{
var animals = new List<Animal>();
animals.Add(new Dog());
animals.Add(new Cat());
Console.Add(animals[0].MakeSound()); // Woof
Console.Add(animals[1].MakeSound()); // Meow
}
听起来你想要的是运行时多态性
public abstract class Animal
{
public abstract void makeSound()
{
Console.WriteLine("[nothing happens]");
}
}
public class Cat : Animal
{
public override void makeSound()
{
Console.WriteLine("Meow");
}
}
public class Dog : Animal
{
public override void makeSound()
{
Console.WriteLine("Woof");
}
}
public static void main(String[] args)
{
var animals = new List<Animal>();
animals.Add(new Dog());
animals.Add(new Cat());
Console.Add(animals[0].MakeSound()); // Woof
Console.Add(animals[1].MakeSound()); // Meow
}
提示:BaseGrid需要是泛型的。@艾米:泛型是编译时的概念,即使在指定具体类型时也是如此。@RobertHarvey我知道。我想你和我对这个问题的解释非常不同。提示:BaseGrid需要是泛型的。@艾米:泛型是一个编译时概念,即使在指定具体类型时也是如此。@RobertHarvey我知道。我想你和我对这个问题的解释非常不同。如果你没有定义任何其他构造函数,你就不需要显式声明泛型构造函数。@nulltron:你仍然需要初始化列表。@RobertHarvey我不知道你在谈论列表。洛尔,不然你为什么要把它变成泛型的呢?:@RobertHarvey,因为泛型太棒了。如果没有定义任何其他构造函数,则不需要显式声明泛型构造函数。@nulltron:您仍然需要初始化列表。@RobertHarvey我不知道您在谈论列表。lolWell,否则您为什么要把它定义为泛型呢?:@RobertHarvey,因为仿制药太棒了。