달러 기호($"string")는 무엇을 합니까?
저는 책에서 몇 가지 C# 연습 문제를 살펴보다가 우연히 저를 당황하게 한 예를 발견했습니다.설명서에서 직접 출력 라인은 다음과 같이 표시됩니다.
Console.WriteLine($"\n\tYour result is {result}.");
코드는 작동하고 그리고double result
예상대로 표시됩니다.하지만, 왜 그런지 이해하지 못합니다.$
문자열의 앞쪽에 있습니까, 저는 그것을 제거하기로 결정했고, 이제 코드는 배열의 이름을 출력합니다.{result}
내용 대신에불행하게도, 그 책은 왜 달러가 그곳에 있는지 설명하지 않습니다.
저는 문자열 포맷과 관련하여 VB 2015 도움말과 구글을 검색하고 있습니다.Console.WriteLine
과부하 방법나는 그것이 왜 그것인지 설명할 수 있는 어떤 것도 보지 못했습니다.어떤 조언이든 감사하겠습니다.
C# 6의 새로운 기능입니다.Interpolated Strings
.
가장 쉽게 이해할 수 있는 방법은 보간된 문자열 식을 식 결과의 ToString 표현으로 대체하여 문자열을 만드는 것입니다.
이에 대한 자세한 내용은 MSDN을 참조하십시오.
이제, 그것에 대해 조금 더 생각해 보세요.이 기능이 좋은 이유는 무엇입니까?
예를 들어, 당신은 수업이 있습니다.Point
:
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
두 개의 인스턴스 생성:
var p1 = new Point { X = 5, Y = 10 };
var p2 = new Point { X = 7, Y = 3 };
이제 화면에 출력하려고 합니다.일반적으로 사용하는 두 가지 방법:
Console.WriteLine("The area of interest is bounded by (" + p1.X + "," + p1.Y + ") and (" + p2.X + "," + p2.Y + ")");
보시다시피 문자열을 이렇게 연결하면 코드를 읽기 어렵고 오류가 발생하기 쉽습니다.사용할 수 있습니다.string.Format()
더 좋게 하기 위해:
Console.WriteLine(string.Format("The area of interest is bounded by({0},{1}) and ({2},{3})", p1.X, p1.Y, p2.X, p2.Y));
이로 인해 다음과 같은 새로운 문제가 발생합니다.
- 당신은 인수의 수를 유지하고 스스로 색인을 작성해야 합니다.인수 수와 인덱스 수가 동일하지 않으면 런타임 오류가 발생합니다.
이러한 이유로 다음과 같은 새로운 기능을 사용해야 합니다.
Console.WriteLine($"The area of interest is bounded by ({p1.X},{p1.Y}) and ({p2.X},{p2.Y})");
컴파일러는 이제 사용자를 위해 자리 표시자를 유지 관리하므로 올바른 인수를 바로 문자열에 배치하기 때문에 인덱싱할 걱정이 없습니다.
전체 게시물을 보려면 이 블로그를 읽어보시기 바랍니다.
Perl과 같은 언어들이 꽤 오랫동안 가지고 있던 개념이며, 이제 우리는 C#에서도 이 기능을 얻을 수 있을 것입니다.문자열 보간에서는 문자열 앞에 $를 붙이기만 하면 됩니다(동사 문자열에 @를 사용하는 것과 같습니다).그런 다음 보간할 식을 곱슬곱슬한 중괄호(예: { 및 })로 묶습니다.
그것은 String과 많이 닮았습니다.자리 표시자를 형식()으로 지정하지만 인덱스 대신에는 물결 괄호 안에 있는 표현식 자체입니다.사실, 그것이 String처럼 보이는 것은 놀랄 일이 아닙니다.포맷()은 컴파일러가 String처럼 취급하는 구문 설탕의 전부이기 때문입니다.뒤에서 형식()을 지정합니다.
중요한 것은 컴파일러가 이제 자리 표시자를 유지 관리하므로 올바른 인수를 인덱싱하는 것에 대해 걱정할 필요가 없다는 것입니다. 왜냐하면 단순히 문자열에 바로 배치하기 때문입니다.
C# 문자열 보간은 문자열을 연결, 형식 지정 및 조작하는 방법입니다.이 기능은 C# 6.0에서 도입되었습니다.문자열 보간을 사용하면 문자열 보간 작업의 일부로 개체와 식을 사용할 수 있습니다.
문자열 보간의 구문은 '$' 기호로 시작하며 식은 다음 구문을 사용하여 {} 괄호 안에 정의됩니다.
{<interpolatedExpression>[,<alignment>][:<formatString>]}
위치:
- 보간 표현식 - 형식을 지정할 결과를 생성하는 표현식입니다.
- alignment - 값이 보간된 식의 결과에 대한 문자열 표현의 최소 문자 수를 정의하는 상수 식입니다.양수이면 문자열 표현이 오른쪽 정렬되고 음수이면 왼쪽 정렬됩니다.
- formatString - 식 결과 유형에서 지원되는 형식 문자열입니다.
다음 코드 예제에서는 작성자인 객체가 문자열 보간의 일부로 사용되는 문자열을 연결합니다.
string author = "Mohit";
string hello = $"Hello {author} !";
Console.WriteLine(hello); // Hello Mohit !
C#/에 대해 자세히 알아보십시오.NET Little Wonders: C# 6의 문자열 보간
언급URL : https://stackoverflow.com/questions/32878549/whats-does-the-dollar-sign-string-do
'programing' 카테고리의 다른 글
문자열을 이진으로 변환하는 방법은 무엇입니까? (0) | 2023.05.11 |
---|---|
디버그 모드에서 프로그램 실행 속도가 매우 느립니다. (0) | 2023.05.11 |
NODE.JS: 치명적 오류 - JS 할당 실패 - 대용량 엑셀 파일을 구문 분석하는 동안 메모리 부족 처리 (0) | 2023.05.11 |
블레이저 성능 (0) | 2023.05.11 |
오류 메시지 '_BSMachError: (os/kern) 잘못된 기능(20)' (0) | 2023.05.06 |