C# 通用搜索助手
C# Generic Search Helper
我正在尝试使用泛型而不是下面的方法重写搜索助手,除了传入的列表类型外,这两个相同的方法。当我将 <T>
添加到 class然后将 <T>
插入到每个列表的类型声明中,我收到以下错误:
类型 'T' 必须是不可为 null 的值类型才能将其用作泛型类型或方法 'ProjectName.Helpers.Extensions.AttributeExtensions.GetDescription(T)'
中的参数 'T'
public class SearchFilterHelper
{
public static SelectList GenreSelectList(List<GenreFilter> filters, int selectedValue = 0)
{
var GenreList = filters.Select(g => new { Value = g.ToString(), Description = g.GetDescription() });
return new SelectList(GeneratedList, "Value", "Description", selectedValue.ToString());
}
public static SelectList PublisherSelectList(List<PublisherFilter> filters, int selectedValue = 0)
{
var GeneratedList = filters.Select(g => new { Value = g.ToString(), Description = g.GetDescription() });
return new SelectList(GeneratedList, "Value", "Description", selectedValue.ToString());
}
}
这是我第一次尝试在 Helper 中使用泛型,对于理解如何重写它的任何帮助,一如既往,我将不胜感激...
您拥有的 GetDescription
方法应用了通用参数为 struct
的通用约束。如果您想从自己的方法中调用该方法,则需要应用相同的通用约束。
我正在尝试使用泛型而不是下面的方法重写搜索助手,除了传入的列表类型外,这两个相同的方法。当我将 <T>
添加到 class然后将 <T>
插入到每个列表的类型声明中,我收到以下错误:
类型 'T' 必须是不可为 null 的值类型才能将其用作泛型类型或方法 'ProjectName.Helpers.Extensions.AttributeExtensions.GetDescription(T)'
中的参数 'T'public class SearchFilterHelper
{
public static SelectList GenreSelectList(List<GenreFilter> filters, int selectedValue = 0)
{
var GenreList = filters.Select(g => new { Value = g.ToString(), Description = g.GetDescription() });
return new SelectList(GeneratedList, "Value", "Description", selectedValue.ToString());
}
public static SelectList PublisherSelectList(List<PublisherFilter> filters, int selectedValue = 0)
{
var GeneratedList = filters.Select(g => new { Value = g.ToString(), Description = g.GetDescription() });
return new SelectList(GeneratedList, "Value", "Description", selectedValue.ToString());
}
}
这是我第一次尝试在 Helper 中使用泛型,对于理解如何重写它的任何帮助,一如既往,我将不胜感激...
您拥有的 GetDescription
方法应用了通用参数为 struct
的通用约束。如果您想从自己的方法中调用该方法,则需要应用相同的通用约束。