簡體   English   中英

C#通用搜索助手

[英]C# Generic Search Helper

我正在嘗試使用泛型而不是下面的內容重寫搜索助手,除了傳入的列表類型外,這兩個方法完全相同。將<T>添加到類中,然后在<T> Type <T>的Type聲明中插入<T>每個列表,我得到以下錯誤:

為了在通用類型或方法“ ProjectName.Helpers.Extensions.AttributeExtensions.GetDescription(T)”中將其用作參數“ 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 如果要從您的方法中調用該方法,則需要應用相同的通用約束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM