什麼可以成爲理由的代碼拉姆達函數的行爲古怪
Line ScoreLine;
ScoreLine = Charting.CreateLine(
"Score", "", Symbol, new Pen(Color.Pink),
LineStyle.Line, Charting.PriceChart, 2
);
導致不同的行爲比
Line ScoreLine;
Func<string, Color, int, Line> createLine
= (string label, Color color, int pad)
=> Charting.CreateLine(label, "", Symbol, new Pen(color),
LineStyle.Line, Charting.PriceChart, pad);
ScoreLine = createLine("Score", Color.Pink, 2);
它看起來像一個微不足道的重構,但第二個版本中的行爲很奇怪的態度。看起來lambda函數的參數並不重要,並且事先設置爲特定值。
哪些參數?你已經硬編碼並關閉的那些將繼續烘焙到'Func'中,其他的可以通過將不同的值傳遞給'Func'來修改。如果你能想出一個證明另有說明的[SSCCE](http://sscce.org/),那麼這對診斷問題會非常有幫助。 –
你能描述一下發生了什麼好一點嗎?哪些值似乎被使用?他們從哪裏來? – 31eee384
我無法輕鬆製作SSCCE,因爲它是一個GUI應用程序,結果只在GUI中可見。 會發生什麼情況是第二個版本不會繪製粉紅線,而是繪製紅線。以前版本的應用中,Red用於同一行。 – aickley