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

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

C#匿名類能實現(xiàn)接口嗎?

C#匿名類能實現(xiàn)接口嗎?

C#
躍然一笑 2019-07-27 12:25:32
C#匿名類能實現(xiàn)接口嗎?是否可以讓匿名類型實現(xiàn)接口。我有一段我想要做的代碼,但是不知道怎么做。我有幾個答案,要么拒絕,要么創(chuàng)建一個實現(xiàn)接口的類來構造該接口的新實例。這并不理想,但我想知道是否有一種機制可以在接口的基礎上創(chuàng)建一個瘦的動態(tài)類,從而使這個過程變得簡單。public interface DummyInterface{     string A { get; }     string B { get; }}public class DummySource{     public string A { get; set; }     public string C { get; set; }     public string D { get; set; }}public class Test{     public void WillThisWork()     {         var source = new DummySource[0];         var values = from value in source                     select new                      {                          A = value.A,                          B = value.C + "_" + value.D                     };         DoSomethingWithDummyInterface(values);     }     public void DoSomethingWithDummyInterface(IEnumerable<DummyInterface> values)     {         foreach (var value in values)         {             Console.WriteLine("A = '{0}', B = '{1}'", value.A, value.B);         }     }}我找到一篇文章動態(tài)界面包裝這說明了一種方法。這是最好的方法嗎?
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

雖然這可能是一個有兩年歷史的問題,而且所有的答案都是正確的,但我忍不住要告訴你這是事實。有可能讓一個匿名類實現(xiàn)一個接口,盡管要達到這個目的需要一些創(chuàng)造性的欺騙。

早在2008年,我就為當時的雇主編寫了一個自定義LINQ提供程序,我一度需要能夠區(qū)分“我的”匿名類和其他匿名類,這意味著讓它們實現(xiàn)一個接口,我可以用來輸入它們。我們解決這一問題的方法是使用方面(我們使用了波斯特),直接在IL中添加接口實現(xiàn)。所以,事實上,讓匿名類實現(xiàn)接口是可行的。你只需要稍微修改一下規(guī)則就可以了。



查看完整回答
反對 回復 2019-07-27
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

將匿名類型轉換到接口是我一段時間以來一直想要的東西,但不幸的是,當前的實現(xiàn)迫使您擁有該接口的實現(xiàn)。

它的最佳解決方案是擁有某種類型的動態(tài)代理,為您創(chuàng)建實現(xiàn)。利用優(yōu)秀臨富工程你可以代替

select new{
  A = value.A,
  B = value.C + "_" + value.D};

帶著

 select new DynamicObject(new
 {
   A = value.A,
   B = value.C + "_" + value.D }).CreateDuck<DummyInterface>();




查看完整回答
反對 回復 2019-07-27
  • 3 回答
  • 0 關注
  • 331 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號