ComboBoxEdit encoderCombo =
{
if (slot==1) return cmbEncoder1;
else if (slot==2) return cmbEncoder2;
else if (slot==3) return cmbEncoder3;
else return cmbEncoder4;
};
匿名方法不工作
回答
爲什麼不只是內聯整個事情並擺脫匿名方法?
ComboBoxEdit encoderCombo = slot == 1 ? cmbEncoder1 :
slot == 2 ? cmbEncoder2 :
slot == 3 ? cmbEncoder3 :
cmbEncoder4;
如果你真的必須使用匿名方法,你可以做一些類似這樣:
Func<ComboBoxEdit> encoderCombo =() =>
slot == 1 ? cmbEncoder1 :
slot == 2 ? cmbEncoder2 :
slot == 3 ? cmbEncoder3 :
cmbEncoder4;
這將捕獲的slot
在封閉的值(這可能會導致不可預知的行爲事態更復雜)。
我在練習匿名方法,因爲他們不想進入我的鍵盤,所以我想用它們儘可能多:) – 2010-10-04 19:18:04
@丹尼爾 - 「他們不想進入我的鍵盤」?這樣做沒有任何意義!對於內聯,爲 – 2010-10-04 19:24:23
+1。這裏不需要匿名方法。 – tobsen 2010-10-04 19:59:41
如果這是C#,那麼這不是一個有效的匿名函數。 C#3.0及以上 -
Func<ComboBoxEdit> encoderCombo = delegate {
if (slot==1) return cmbEncoder1;
else if (slot==2) return cmbEncoder2;
else if (slot==3) return cmbEncoder3;
else return cmbEncoder4;
};
你可以擺脫elses – nan 2010-10-04 19:22:49
,如果你有
Func<ComboBoxEdit> encoderCombo =() =>
注意更換
ComboBoxEdit encoderCombo=
這將是有效的。
好了,你可以做像這樣:
ComboBoxEdit encoderCombo = new Func<ComboBoxEdit>(() =>
{
if (slot==1) return cmbEncoder1;
else if (slot==2) return cmbEncoder2;
else if (slot==3) return cmbEncoder3;
else return cmbEncoder4;
}).Invoke();
這是一種可怕的,雖然;)
- 1. 匿名類不工作
- 2. 匿名匿名方法未授權?
- 3. Apache Shiro匿名篩選器不工作
- 4. $ log匿名函數angular js不工作
- 5. 使用工廠方法作爲替代通過匿名函數
- 6. Yield語句不能匿名方法
- 7. 調用方法匿名類
- 8. 如何從匿名方法
- 9. 調用匿名方法
- 10. 範圍和匿名方法
- 11. WPF:UnauthorizedAccessException使用匿名方法
- 12. 可選的匿名方法
- 13. 使用匿名方法
- 14. 匿名方法源代碼
- 15. 匿名方法爲perameter
- 16. VB.NET RemoveHandler&匿名方法
- 17. 匿名方法的問題
- 18. 爲什麼我的匿名方法不能在循環中工作?
- 19. RecyclerView notifyDatasetChanged在匿名類方法中notifyDatasetchanged時不起作用
- 20. 儘管「匿名訪問」被禁用,Artifactory匿名拉工作?
- 21. 如何執行回調方法而不是匿名方法?
- 22. 無法調用匿名類的方法
- 23. 給予一個別名匿名類型屬性不工作
- 24. 方法不工作
- 25. siginfo匿名工會
- 26. 如何使匿名塊工作
- 27. 匿名訪問詹金斯工作區
- 28. Jenkins:隱藏匿名用戶的工作
- 29. C中的遞歸和匿名方法#
- 30. Invoke調用中的匿名方法
什麼語言是什麼? .NET是不是一種語言,如果這應該是C#那麼,很多事情都是錯誤的:-) – 2010-10-04 19:14:15
這是c#,或者至少我強迫它:) – 2010-10-04 19:14:47
那麼,這遠離C#。首先描述你正在做什麼,提供一些上下文,你會得到什麼錯誤信息,像這樣的事情... – 2010-10-04 19:15:58