第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何制作具有類型的通用接口列表

如何制作具有類型的通用接口列表

C#
慕蓋茨4494581 2022-06-18 17:45:42
這是我的代碼伙計們。public interface IScorecardRule { }public interface IScorecardRule<T> : IScorecardRule {    List<T> Extract();}public class AdminRule : IScorecardRule<AdminRepository>{    public List<AdminRepository> Extract()    {        return new List<AdminRepository>();    }}public class AdminRepository{    public string Firstname { get; set; }    public string Lastname { get; set; }}現(xiàn)在我想要的是創(chuàng)建一個IScorecardRule接口列表并迭代實現(xiàn)它的每個規(guī)則。我計劃根據(jù)要求在此處添加更多規(guī)則,每個規(guī)則都具有返回的 'Extract' 方法的差異實現(xiàn)List<T>。這里的問題是ExtractMethod 不可訪問。var rules = new List<IScorecardRule>();rules.Add(new AdminRule()); //Rule for Admin//rules.Add(new DeveloperRule()); //Rule for Developerforeach (var rule in rules){     var myList = rule.Extract(); //Extract Method Not Accessible     //--More Code here--//}我希望這是有道理的。讓我知道我的邏輯是否有缺陷以及這種方法是否可行。謝謝!
查看完整描述

2 回答

?
翻翻過去那場雪

TA貢獻2065條經(jīng)驗 獲得超14個贊

問題出在第一行:

var rules = new List<IScorecardRule>();

您將列表聲明為IScorecardRule而不是IScorecardRule<AdminRepository>

由于提取方法不在IScorecardRule界面中,因此無法看到。


查看完整回答
反對 回復 2022-06-18
?
慕俠2389804

TA貢獻1719條經(jīng)驗 獲得超6個贊

我只是通過使用下面的代碼設法解決了這個問題。解決方案雖然不是很漂亮,但我將把這個留在這里。


foreach (var rule in rules)

{

    Type typeParameterType = rule.GetType();

    var instance = (dynamic)Activator.CreateInstance(typeParameterType);

    var myList = instance.Extract();

}


查看完整回答
反對 回復 2022-06-18
  • 2 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號