iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
永豐金融APIs

菜鳥工程師想用C#做出金流微服務是否搞錯了什麼?系列 第 12

[Day12] 為了擺脫菜鳥C#後端 -到底什麼是Delegate?Func<T, TResult>?

測試打了"OrderCreate"(建立訂單)服務後,
昨天我們嘗試(使用AES-CBC)解析並還原永豐API回傳的原始訊息,理論上離成功走完串接流程只剩下不到一半的路要走了(希望如此QQ)

先來複習一遍~豐收款這邊總共有提供四項基本API服務
https://ithelp.ithome.com.tw/upload/images/20210926/20131205JsukjsHbew.png

再回來看一下永豐提供的sample code:

//取得QPay Web API response
private static TResult GetQPayResponse<TReq, TResult>(TReq request, APIService apiService) where TReq : IQPayReq
{
//實作......
return innerResult;
}

內個....TResult <TReq, TResult> where TReq : IQPayReq 到底是啥?


這是微軟官方的委派的說明:

封裝具有一個參數並傳回 TResult 參數指定類型之值的方法。

public delegate TResult Func<in T,out TResult>(T arg);

類型參數
T

這個委派所封裝之方法的參數類型。這是反變數的型別參數。 也就是說,您可以使用您指定的類型,或衍生程度較低的任何類型。 如需共變數與反變數的詳細資訊,請參閱泛型中的共變數與反變數。
TResult
這個委派所封裝之方法的傳回值之類型。這是共變數的型別參數。 也就是說,您可以使用您指定的類型,或衍生程度較高的任何類型。 如需共變數與反變數的詳細資訊,請參閱泛型中的共變數與反變數。

好吧,有看沒有懂,只好放棄
沒啦,今天容我先水一下...,明天繼續談談委派、泛型,真的是C#必備技能!!
想要脫離C#菜鳥後端工程師真的不能不會啊.....


其實我去年底開始學C#的時候也是一頭霧水,一直到現在才有漸漸比較熟悉,不過即便是現在我可能也是略懂略懂而已,因此若有錯誤還請各位前輩們不吝指教><


上一篇
[Day11] C#實作解密Response訊息內文(Message)
下一篇
[Day 13] C#改造程式碼( Func<T, TResult> )教學(下)
系列文
菜鳥工程師想用C#做出金流微服務是否搞錯了什麼?15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言