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

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

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

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

Cats萌萌 2019-07-22 19:42:36
C#匿名類能實現(xiàn)接口嗎?是否可以讓匿名類型實現(xiàn)接口。我有一段我想要做的代碼,但是不知道怎么做。我有幾個答案,要么拒絕,要么創(chuàng)建一個實現(xiàn)接口的類來構(gòu)造該接口的新實例。這并不理想,但我想知道是否有一種機制可以在接口的基礎(chǔ)上創(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貢獻1802條經(jīng)驗 獲得超10個贊

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

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


查看完整回答
反對 回復(fù) 2019-07-22
?
九州編程

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

將匿名類型轉(zhuǎn)換到接口是我一段時間以來一直想要的東西,但不幸的是,當(dāng)前的實現(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>();


查看完整回答
反對 回復(fù) 2019-07-22
  • 3 回答
  • 0 關(guān)注
  • 1957 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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