有一些類似的問題,但不完全像我的。void Func無參數
是否有沒有返回值(即void)和沒有參數的函數的Func等價物?
相關問題是Func not returning anything? 但這不適用於void類型。
(我需要它從我的視圖模型請求動作到我的視圖)。
有一些類似的問題,但不完全像我的。void Func無參數
是否有沒有返回值(即void)和沒有參數的函數的Func等價物?
相關問題是Func not returning anything? 但這不適用於void類型。
(我需要它從我的視圖模型請求動作到我的視圖)。
你的措辭令人困惑。您可能是指「沒有返回類型且沒有參數的功能。」有簡單的System.Action。
Action action =() => Console.WriteLine("hello world");
action();
從您的評論:
但我需要填寫在行動和無效的一個
<T>
類型的可能性也不大(我將編輯我的問題,我犯了一個錯誤)。
這表示一種誤解。行動代表中的T是輸入。該空白是輸出。一個Action委託本質上是一個返回void的委託。 T是輸入的類型它可以處理參數,然後您將提供參數。
無論如何,正如此答案和其他人所顯示的那樣,您可以擁有一個沒有任何T的Action委託,一個不接受任何輸入的委託。
是的,我完全錯過了
@anthony如何在3.5之前的.NET Framework中執行此操作。沒有委託行動。只有代表行動
@ ph1983,在C#3之前,您可以使用委託,儘管C#2.0添加了對*匿名方法*的支持。我沒有正確的示例問題,但是您可以閱讀[MSDN]上的功能(http://msdn.microsoft.com/zh-cn/library/0yw3tz5k.aspx)。 – 2014-08-26 16:06:02
你在找什麼是一個行動。它不帶參數,並且不返回任何值。
是的,有不同的過載Action
採取不同數量的輸入參數和void
返回類型。
Action public delegate void Action()
Action<T> public delegate void Action<T>(T obj)
Action<T1,T2> public delegate void Action<T1,T2>(T1 arg1, T2 arg2)
Action<T1,T2,T3> public delegate void Action<T1,T2,T3>(T1 arg1, T2 arg2, T3 arg3)
...
第一行是你要找的。
較新的框架版本增加了重載甚至更多的參數。 的參數的最大數量:
操作始終一個void
返回類型。 A void
返回類型不需要,也不能指定爲泛型類型參數。相比之下,Func
代表界定「真正」的返回類型,並一直爲返回類型的至少一個泛型類型參數:
Func<TResult> public delegate TResult Func<TResult>()
Func<T,TResult> public delegate TResult Func<T,TResult>(T arg)
Func<T1,T2,TResult> public delegate TResult Func<T1,T2,TResult>(T1 arg1, T2 arg2)
...
的.NET Framework 4.0增加了in
和out
修飾的泛型類型反變量和協方差的參數。請參閱:Covariance and Contravariance in Generics。例子:
public delegate void Action<in T1, in T2>(T1 arg1, T2 arg2)
public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2)
@Anthony Pegram:但我需要填寫型的動作和無效的可能性也不大(我將編輯我的問題,我犯了一個錯誤)。 –
2012-02-11 23:38:17