반환 유형이 없는 함수 대리자
모든 Func 딜러가 값을 반환합니다.는 무엇입니까?무효를 반환하는 방법과 함께 사용할 수 있는 NET 대리인은?
모든 Func 딜러가 무언가를 반환하고 모든 조치 딜러가 무효로 반환합니다.
Func<TResult>
인수를 사용하지 않고 TResult를 반환합니다.
public delegate TResult Func<TResult>()
Action<T>
하나의 인수를 사용하고 값을 반환하지 않습니다.
public delegate void Action<T>(T obj)
Action
가장 단순한 '최소한의' 대리자입니다.
public delegate void Action()
또 있습니다.Func<TArg1, TResult>
그리고.Action<TArg1, TArg2>
(최대 16개의 인수).이 모든 것( 제외)Action<T>
)가 처음입니다.NET 3.5(시스템에 정의됨).코어).
인수를 사용하지 않고 void 반환 유형이 있습니까?
믿어요Action
이것에 대한 해결책입니다.
모든 Func 딜러가 하나 이상의 매개 변수를 사용합니다.
그렇지 않아요.모두 하나 이상의 형식 인수를 사용하지만 이 인수에 따라 반환 형식이 결정됩니다.
그렇게Func<T>
매개 변수를 사용하지 않고 값을 반환합니다.사용하다Action
또는Action<T>
값을 반환하지 않으려는 경우
해라System.Func<T>
그리고.System.Action
반환 및 반환되지 않는 값 서브루틴을 호출하는 매우 쉬운 방법입니다.각각 Func 및 Action을 사용하고 있습니다.(https://msdn.microsoft.com/en-us/library/018hxwa8(v=vs.110).aspx) 참조)
이 예제를 사용해 보십시오.
using System;
public class Program
{
private Func<string,string> FunctionPTR = null;
private Func<string,string, string> FunctionPTR1 = null;
private Action<object> ProcedurePTR = null;
private string Display(string message)
{
Console.WriteLine(message);
return null;
}
private string Display(string message1,string message2)
{
Console.WriteLine(message1);
Console.WriteLine(message2);
return null;
}
public void ObjectProcess(object param)
{
if (param == null)
{
throw new ArgumentNullException("Parameter is null or missing");
}
else
{
Console.WriteLine("Object is valid");
}
}
public void Main(string[] args)
{
FunctionPTR = Display;
FunctionPTR1= Display;
ProcedurePTR = ObjectProcess;
FunctionPTR("Welcome to function pointer sample.");
FunctionPTR1("Welcome","This is function pointer sample");
ProcedurePTR(new object());
}
}
때때로 이벤트 처리를 위해 대리자를 작성하고 싶을 수 있습니다. 이 경우 유형의 인수를 암시적으로 수락하는 이점을 활용할 수 있습니다.object
EventHandlers에서 파생되어야 하는 두 번째 매개 변수에 추가하여void
저는 개인적으로 함수 본문에서 일회성 콜백을 만들기 위한 테스트를 하는 동안 이것이 유용하다는 것을 알게 되었습니다.
인수를 사용하지 않고 void 반환 유형이 있습니까?
다음을 위해 글을 쓰는 경우System.Windows.Forms
다음을 사용할 수도 있습니다.
public delegate void MethodInvoker()
언급URL : https://stackoverflow.com/questions/917551/func-delegate-with-no-return-type
'programing' 카테고리의 다른 글
원격 Git 저장소의 URI(URL)를 변경하려면 어떻게 해야 합니까? (0) | 2023.05.06 |
---|---|
Python 3에서 맵이 목록 대신 맵 객체를 반환하는 이유는 무엇입니까? (0) | 2023.05.06 |
Angular 2 - 집합 대신 숫자를 사용하기 위한 NgF (0) | 2023.05.06 |
명령 프롬프트 실행 명령 (0) | 2023.05.06 |
기계는 어디에 있습니까?구성? (0) | 2023.05.06 |