디컴파일된 C# 7 라이브러리를 조사하는 동안 ValueTuple 제네릭을 사용할 수 있습니다. ValueTuples의 목적과 기존 Tuple에 비해 장점을 이해하는 것이 중요합니다.
주요 차이점:
ValueTuples의 이론적 근거:
소개 C# 7의 ValueTuples는 성능 고려사항에 따라 결정되었습니다.
예:
사용 및 이점 시연 ValueTuples:
public (int sum, int count) DoStuff(IEnumerable<int> values) { var res = (sum: 0, count: 0); foreach (var value in values) { res.sum += value; res.count++; } return res; }
분해 사용:
var result = DoStuff(Enumerable.Range(0, 10)); Console.WriteLine($"Sum: {result.sum}, Count: {result.count}");
또는 새로운 변수 사용:
ValueTuple<int, int> valueTuple = DoStuff(Enumerable.Range(0, 10)); Console.WriteLine(string.Format("Sum: {0}, Count: {1})", valueTuple.Item1, valueTuple.Item2));
컴파일러 구현:
컴파일러는 ValueTuple의 필드를 내부적으로 활용하는 코드를 생성합니다. 직관적인 사용을 위해 명명된 인수 액세스를 제공합니다.
결론:
ValueTuples는 값 유형 특성, 가변성 및 특성으로 인해 기존 Tuple에 비해 상당한 성능 및 편의성 이점을 제공합니다. 구문 설탕.
위 내용은 C#의 ValueTuple과 Tuple: 주요 성능 및 디자인 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!