>  기사  >  백엔드 개발  >  C#의 일반 위임을 위한 샘플 코드 공유(그림)

C#의 일반 위임을 위한 샘플 코드 공유(그림)

黄舟
黄舟원래의
2017-03-29 11:23:291310검색

이 글에서는 주로 c#의 일반 대리자를 소개합니다. 참조값이 매우 좋습니다.

오늘은 C#의 Generic Delegation에 대해 알아보겠습니다.

1. 일반 위임, 위임은 매개 변수(<=32)를 전달할 수 있으며, 선언된 메서드는 공개 위임 void SomethingDelegate(int a);

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegateSummary {
 public delegate void GetIntDelegate(int a); //声明一个委托
 public class getIntClass { 
 public static void SetDelegateString(int a,GetIntDelegate getIntDelegate) {//使用委托
  getIntDelegate(a);
 }
 public void getInt1(int a) { //方法1
  Console.WriteLine("getInt1方法调用,参数为:" + a);
 }
 public void getInt2(int a) { //方法2
  Console.WriteLine("getInt2方法调用,参数为:" + a);
 }
 }
 class Program {
 static void Main(string[] args) {
  getIntClass gc=new getIntClass();
  getIntClass.SetDelegateString(5, gc.getInt1);  //方法1,2作为委托的参数
  getIntClass.SetDelegateString(10, gc.getInt2); 
  Console.WriteLine("=====================");
  GetIntDelegate getIntDelegate;
  getIntDelegate = gc.getInt1;     //将方法1,2绑定到委托
  getIntDelegate += gc.getInt2;
  getIntClass.SetDelegateString(100, getIntDelegate); 
  Console.Read();
 } 
 }
}

결과를 출력합니다. 두 메서드의 차이점에 유의하세요. 첫 번째 메서드는 메서드를 대리자의 매개 변수로 사용하고 두 번째 메서드는 메서드를 대리자에 바인딩합니다.

2. 일반 대리자 Action은 최대 16개의 매개변수를 전달할 수 있으며 반환 값이 없습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegateSummary {
 class Program {
 static void Main(string[] args) {
  TestAction<string>(getString, "WhiteTaken"); //传入方法
  TestAction<int>(getInt, 666);
  TestAction<int, string>(getStringAndInt, 666, "WhiteTaken");
  Console.Read();  
 }
 public static void TestAction<T>(Action<T> action,T p1) {        //Action传入一个参数测试
  action(p1);
 }
 public static void TestAction<T, P>(Action<T, P> action, T p1, P p2) { //Action传入两个参数测试
  action(p1,p2);
 }
 public static void getString(string a) {    //实现int类型打印
  Console.WriteLine("测试Action,传入string,并且传入的参数为:" +a);
 }
 public static void getInt(int a) {     //实现String类型打印
  Console.WriteLine("测试Action,传入int,并且传入的参数为:" + a);
 }
 public static void getStringAndInt(int a, string name) {    //实现int+string类型打印
  Console.WriteLine("测试Action,传入两参数,并且传入的参数为:" + a+":"+name);
 }
 }
}

테스트 결과:

3. 일반 대리자 Func는 최대 16개의 매개변수를 전달하고 반환 값을 가질 수 있습니다. (작성 방법은 Action과 유사하지만 추가 반환값이 있음)

4. 일반 대리자의 술어(자주 사용되지는 않음), 반환값은 bool, 사용됨 배열 목록에서 요소를 검색하세요. (아직 사용해본 적은 없는데 사용하게 되면 업데이트 하겠습니다)

위 내용은 C#의 일반 위임을 위한 샘플 코드 공유(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.