Asp.Net 의 Action 과 Func 의뢰 실현
최근 한 오픈 소스 프레임 소스 코드 를 읽 으 면서 저자 가 액 션 의뢰 와 펑 크 의뢰 를 많이 활용 한 것 을 발 견 했 습 니 다.제 가 프로젝트 에서 도 의뢰 에 대한 실 체 를 했 지만 오래 사용 하지 않 을 수 밖 에 없 었 습 니 다.처음에 소 화 했 던 의뢰 기초 들 은 모두 잊 어 버 렸 습 니 다.차라리,쇠뿔 도 단 김 에 빼 고,이번 공유 의 기 회 를 빌려,자신 을 도와.Net 에서 의뢰 에 관 한 기초 용법 을 다시 공 고 히 하 자.
주 제 를 향 해 곧장 달려가다.
.Net Framework 1.0 부터 저희 에 게 의뢰 한 기능 을 제공 해 주 었 습 니 다.그때.Net 내장 의뢰 Action 과 Func 가 아직 출시 되 지 않 았 다 면 1.0 버 전의 의뢰 를 살 펴 보 자.의뢰 는 말 그대로'남 을 도와 일 하 는 것'이 고 구체 적 으로 일 하 는 내용 은'방법'에 맡 겼 기 때문에 통속 적 으로 이해 합 니 다.의뢰 는 보통 한 방법 에 대한 호출 을 나타 내 는 데 사 용 됩 니 다.구체 적 으로 어떻게 사용 하 는 지,우 리 는 이어서 아래 를 보 았 다.
성명 의뢰
형식:
키워드"delegate"수식 의뢰
/// <summary>
///
/// </summary>
public delegate void BuyGoodsDelegate(string Name);
/// <summary>
///
/// </summary>
public void BuyGoods(string Name)
{
Console.WriteLine($" {Name}");
}
의뢰 와 방법 관련의뢰 와 방법 을 설명 한 후에 우 리 는 의뢰 와 방법 을 연결 시 켜 야 의뢰 가 자신 이 호출 하고 자 하 는 방법 이 무엇 인지 알 수 있다.
//
BuyGoodsDelegate buyGoods = new BuyGoodsDelegate(BuyGoods);
위탁 호출 방법의뢰 와 방법 을 연결 한 후에 우 리 는 의뢰 인 스 턴 스 를 직접 조작 하여 방법 을 호출 할 수 있 고 호출 방식 과 직접 호출 방법 이 많 지 않다.
// 1
buyGoods(" ");
// 2
buyGoods.Invoke(" ");
4.효과위 에서 사용 한 후에 우 리 는 의뢰 가 기본적으로 구체 적 인 방법 에 따라 성명 한 것 을 발견 할 것 이다.만약 에 서로 다른 방법 에 3 개,4 개 또는 더 많은 매개 변수 가 있다 면 우 리 는 서로 다른 매개 변수 개수 의 의뢰 를 각각 성명 해 야 한다.무심코'성명 위 탁'의 문턱 이 하나 더 생 겼 다.그래서.Net Framework 3.5 버 전 이후.Net 자체 의 내장 의뢰 Action 과 Func 를 발표 했다.우 리 는 더 이상 성명 의뢰 를 하지 않 고 직접 사용 할 수 있다.
액 션 의뢰
Action 의뢰 는 매개 변수 가 없고 매개 변수 방법 이 있 지만 반환 유형 을 제공 하지 않 습 니 다.Action,Action
Func 의뢰
Func 의뢰 는 매개 변수 가 없고 매개 변수 방법 이 있 으 며 반환 유형 을 제공 합 니 다.Func
일반 함수 호출
그 중에서 Student 는 입 참 형식 이 고 string 은 반환 매개 변수 형식 입 니 다.
//
Func<Student, string> funcNew = FuncTestDelegate;
/// <summary>
/// string
/// </summary>
/// <param name="student"></param>
/// <returns></returns>
public string FuncTestDelegate(Student student)
{
return student.StudentName;
}
우 리 는 Func 가 사용 을 의뢰 할 때 성명 없 이 바로 사용 할 수 있 는 것 을 볼 수 있다.익명 함수
익명 함 수 는 키워드"delegate"로 설명 해 야 합 니 다.
//Func
Func<int,int,string> func3 = delegate(int num1,int num2)
{
return $"Func: :{num1+ num2}";
};
//
var result = func3(10, 20);
lamda 표현 식
//Func lamda
Func<string> func1 = () =>
{
return "Func: ";
};
var result = func1();
//Func lamda
string aa = "ABC";
string bb = "DEF";
Func<string, string, string> func2 = (p1, p2) =>
{
return $"Func:{p1}, {p2}";
};
result = func2(aa, bb);
액 션 의뢰 인 스 턴 스액 션 의뢰 와 펑 크 의뢰 의 유일한 차 이 는 반환 유형 이 없고,다른 용법 은 모두 같 으 며,반환 유형 이 필요 없 을 때 는 직접 액 션 으로 의뢰 하 는 것 이다.
//Action lamda
Action<string, string> action = (p1, p2) =>
{
Console.Write($"Action:{p1}, {p2}");
};
action("ABC", "DEF");
작은 매듭본 고 는 사용자 정의 의뢰 와.Net 내 장 된 의뢰 Action 과 Func 의 기초 용법,그리고 그들 간 의 차이 점 을 소개 한다.전체적으로 보면 간단 하 다.조금 만 손 을 대 봐 도 자신 이 한 번 써 보면 그 매력 을 느 낄 수 있다.더 이상 말 하지 않 겠 습 니 다.자신 을 충족 시 키 는 동시에 더 많은 동료 들 의 생활 에 소금 을 넣 었 으 면 좋 겠 습 니 다.
Asp.Net 의 Action 과 Func 의뢰 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Asp.Net 의 Action 과 Func 의뢰 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
easyui 내 보 내기 excel 다운로드 상 자 를 꺼 낼 수 없 는 해결 방법이전에 ajax 로 만 든 코드 는 다음 과 같 습 니 다 (ActionUrl 은 일반 처리 프로그램 ashx 의 경로 입 니 다). 다운로드 상 자 를 팝 업 할 수 없습니다. 직접 브 라 우 저 주소 표시 줄 에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.