gpt4 book ai didi

c# - IEnumerable 属性的模板?

转载 作者:行者123 更新时间:2023-12-03 20:27:34 26 4
gpt4 key购买 nike

有没有办法模板化这个类,这样我就可以拥有一个可以存储 IEnumerable<Whatever> 的通用 ListViewModel .因此,而不是以下内容:

public class JamesListViewModel
{
public IEnumerable<James> Jamess { get; set; }
public PagingInfo PagingInfo { get; set; }
}

我会:

public class ListViewModel
{
public IEnumerable<T> Items { get; set; }
public PagingInfo PagingInfo { get; set; }
}

否则,对于每个具有分页等的列表页面,我将不得不创建一个新的 View 模型。更重要的是,如果我能让后者工作的话。如果需要特定 View ,我可以继承和改进。

最佳答案

您需要使类通用:

public class ListViewModel<T>
{
public IEnumerable<T> Items { get; set; }
public PagingInfo PagingInfo { get; set; }
}

然后,可以通过提供类型参数来创建实例,如下所示:

var vm = new ListViewModel<string>();

多个类型参数可以用逗号分隔:

public class ListViewModel<T, U>
{
public IEnumerable<T> Items { get; set; }
public IEnumerable<U> OtherItems { get; set; }
public PagingInfo PagingInfo { get; set; }
}

var vm = new ListViewModel<string, int>();

参见 this guide获取更多信息。

关于c# - IEnumerable 属性的模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21525994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com