[問題] lumbda的用法

看板C_Sharp (C#)作者 (累人啊....)時間6年前 (2018/11/12 21:16), 編輯推噓3(3019)
留言22則, 7人參與, 6年前最新討論串1/1
抱歉,最近剛從別的語言轉過來C# 看到這樣的lambda表達式有些地方不太懂 public string AAA { get { return this.GetValue(() => this.AAA) } set { this.SetValue(() => this.AAA, value) } } protected T GetValue<T>(Expression<Func<T>> property) {...} protected bool SetValue<T>(Expression<Func<T>> property, T value) {...} 主要是不懂紅色括號那是什麼意思 google找到https://ithelp.ithome.com.tw/articles/10100451 這網頁的說明也讓我有類似的疑惑,function內template的型態數量感覺對不起來 再麻煩版友幫解答一下,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.89.192 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1542028594.A.8FB.html

11/12 21:23, 6年前 , 1F
Func 的最後一個型別參數是回傳的參數型別, 其他是輸入的
11/12 21:23, 1F

11/12 21:23, 6年前 , 2F
參數型別
11/12 21:23, 2F

11/12 21:26, 6年前 , 3F
紅色括號中帶入的是傳入的型別參數,本例不需要傳入型別參
11/12 21:26, 3F

11/12 21:26, 6年前 , 4F
數, 所以紅色括號中是空的
11/12 21:26, 4F

11/12 21:35, 6年前 , 5F
其實lumbda很多語言都有
11/12 21:35, 5F

11/12 21:45, 6年前 , 6F
Google找"C# lambda"有很多網頁可以看
11/12 21:45, 6F

11/12 21:49, 6年前 , 7F
基本的lambda表達式google後是看的懂,只是這裡是和它的參
11/12 21:49, 7F

11/12 21:50, 6年前 , 8F
數Expression<Func...這個對不起來
11/12 21:50, 8F

11/12 21:50, 6年前 , 9F
這是要先懂LINQ才知道這個的意思是嗎?
11/12 21:50, 9F

11/12 21:56, 6年前 , 10F
LINQ是LINQ,Lambda是Lambda,別混回一談
11/12 21:56, 10F

11/12 21:57, 6年前 , 11F
每次聽到有人問LINQ寫法和Lambda寫法分別是哪種就...
11/12 21:57, 11F

11/12 22:00, 6年前 , 12F
Expression是封裝delegate的一個型別
11/12 22:00, 12F

11/12 22:02, 6年前 , 13F
你可能要了解Generic
11/12 22:02, 13F

11/12 22:02, 6年前 , 14F
所以SetValue()有兩個參數,型別分別為Expression和T
11/12 22:02, 14F

11/12 22:03, 6年前 , 15F
() => this.AAA (Expression), value (T)
11/12 22:03, 15F

11/12 22:05, 6年前 , 16F
覺得對不起來,應該是把Generic Type當成參數了
11/12 22:05, 16F

11/13 00:06, 6年前 , 17F
這個叫委派喔https://goo.gl/SgWu4f
11/13 00:06, 17F

11/13 00:13, 6年前 , 18F
你先把括號還原成1.0的寫法 再對照Func<T>來看
11/13 00:13, 18F

11/13 00:13, 6年前 , 19F
就知道T代表什麼了
11/13 00:13, 19F

11/13 17:34, 6年前 , 20F
可以去寫一下javascript感受應該會挺深的
11/13 17:34, 20F

11/13 19:10, 6年前 , 21F
我覺得你的問題可能不是lambda 剛好有人提到js
11/13 19:10, 21F

11/13 19:13, 6年前 , 22F
你可能是想知道Expression幹嘛用的:當作直譯器就好
11/13 19:13, 22F
文章代碼(AID): #1RwNqoZx (C_Sharp)
文章代碼(AID): #1RwNqoZx (C_Sharp)