누군가가 Func<int, string>
이 무엇인지 설명 할 수 있는지, 그리고 몇 가지 명확한 예제와 함께 어떻게 사용되는지 궁금합니다.Func에 대한 설명
답변
위치 : 여기
는 사용의 예입니다? 나는 둘 사이의 차이점을 설명하기 위해 더 자세하게 설명되어 있지만, 도움이 될만한 delegates and events에 관한 페이지를 가지고 있습니다. 이 선언에서 해당 형태 인수 (int
및
string
)로
유형 매개 변수 (
T
및
TResult
)를 대체하여 특정 상황에서 어떤 의미인지 운동 -
Func<T, TResult>
그냥 일반적인 위임이다. Func<int, string>
함수 int
인수를 복용하고 string
반환을 대표하는 대리인이다, 즉
string ExpandedFunc(int x)
: 나는 또한 혼동을 피하기 위해 이름을 변경했습니다.
Func<T, TResult>
은 LINQ에서 투영과 술어 모두에 사용됩니다 (후자의 경우 TResult
은 항상 bool
임). 예를 들어 Func<int, string>
을 사용하여 일련의 정수를 문자열 시퀀스에 투영 할 수 있습니다. 일반적으로 관련 대표단을 만들 LINQ에서 사용되는람다 표현식 :
Func<int, string> projection = x => "Value=" + x;
int[] values = { 3, 7, 10 };
var strings = values.Select(projection);
foreach (string s in strings)
{
Console.WriteLine(s);
}
결과 :
Value=3
Value=7
Value=10
int
하나를 매개 변수로 사용하고 string
값을 반환하는 대리인입니다. 당신은 일반적으로 대표단을 잘 알고
using System;
class Program
{
static void Main()
{
Func<Int32, String> func = bar;
// now I have a delegate which
// I can invoke or pass to other
// methods.
func(1);
}
static String bar(Int32 value)
{
return value.ToString();
}
}
감사합니다. bar (1) 대신 func (1)을 쓰고 싶습니까? – zSynopsis
예 했어요!수정 주셔서 감사! –
Func<int, string>
int 타입을 먹고 문자열을 반환합니다. 그래서 int를 먹고 문자열을 반환합니까? 어때? ...
public string IntAsString(int i)
{
return i.ToString();
}
거기에서 ints를 먹고 문자열을 반환하는 함수를 만들었습니다. 어떻게 사용합니까?
var lst = new List<int>() { 1, 2, 3, 4, 5 };
string str = String.Empty;
foreach(int i in lst)
{
str += IntAsString(i);
}
// str will be "12345"
별로 섹시하지 못하다는 것을 알고 있습니다. 그러나 그것은 많은 트릭이 기반이라는 간단한 생각입니다. 이제 Func을 대신 사용 해보자. 이 FNC 전화 (이러한 방법 참조 delegates라고한다)와 사용하는 대신에 대신에, 각 부재에 IntAsString 호출
Func<int, string> fnc = IntAsString;
foreach (int i in lst)
{
str += fnc(i);
}
// str will be "1234512345" assuming we have same str as before
는, I는 기준을 만들었다. (fnc는 ints를 취하고 문자열을 반환합니다).
이 예제는별로 섹시하지 않지만 유용한 기능과 대리인 및 간단한 설명 인 extension methods을 기반으로합니다.
내가 본이 재료에 대한 최고의 프라이머 중 하나는 here입니다. 그는 실제 사례가 훨씬 많습니다. :)
나는이 설명이 마음에 든다. –
@ Theherealnapster 나는 그것을 좋아하지만 나는 네 이름을 더 좋아한다. – BKSpurgeon
- 1. iframe에서 func에 액세스 중입니다. 로컬로 온라인
- 2. Minecraft Renderengine에 대한 설명
- 3. 샘플에 대한 설명
- 4. S.O.L.I.D 원리 - 대한 설명
- 5. FFT에 대한 설명
- 6. NSMutableArray에 대한 설명
- 7. sqlplus 명령에 대한 설명
- 8. dll의 datamodule에 대한 설명?
- 9. 코드 조각에 대한 설명
- 10. Standard MBean에 대한 설명
- 11. contrib_to_class에 대한 설명
- 12. bash 명령에 대한 설명
- 13. 코코스 설명에 대한 설명
- 14. Java 문에 대한 설명
- 15. 예외 처리에 대한 설명
- 16. document.ready에 대한 JQuery 설명
- 17. Android 앱에 대한 설명
- 18. POCO에 대한 설명
- 19. PDO와 bindparam에 대한 설명
- 20. json에 대한 설명
- 21. dealloc 메서드에 대한 설명
- 22. 오버로드에 대한 설명
- 23. PHP md5에 대한 설명
- 24. func에 제네릭 형식 (추상 클래스의 자식) 전달
- 25. HTTP 연결에 대한 'didReceiveData'메서드에 대한 설명
- 26. ftrace에 대한 좋은 설명/문서
- 27. SharePoint 그룹에 대한 설명 변경
- 28. SendMessage 메시지 번호에 대한 설명?
- 29. 웹 사이트에 대한 비디오 설명
- 30. 자바 스크립트에서 [] .slice.call에 대한 설명?
"즉, int 인수를 사용하여 문자열을 반환하는 함수를 나타내는 대리자입니다." 다른 사람들에게 혼란을 피하기 위해 나는 Func 이 아닌 Func에 대해 이야기하고 있음을 분명히 할 것입니다. 제네릭 형식과 대리자를 이해했는지는 확실하지만 그렇지 않은 경우 Func 은 int 인수를 사용하여 문자열을 반환하는 함수에 kan을 위임합니다. –
나중에 PC에 다시 돌아올 때 명확 해집니다. –
Downvoters : 이유를 제공해주세요 ... –