문자열 앞에 $는 무엇을 의미합니까?
쓰려고 잘못 요.$@.
하지만 컴파일러는 나에게 오류를 주지 않고 성공적으로 컴파일했다.
나는 그것이 무엇이고 무엇을 하는지 알고 싶다.찾아봤는데 아무것도 안 나왔어요.
다만, 다음과 같이 쓸 수 없기 때문에, 문자 그대로의 문자열과는 다릅니다.
string str = $"text\";
「 」가 죠?$C# C# C#은?
string str = $"text";
저는 Visual studio 2015 CTP를 사용하고 있습니다.
$이 모자라다String.Format보간과 이#6과 마찬가지로 아무것도.사용하시는 경우처럼 아무것도 실행되지 않습니다.string.Format()아무 것도 안 할 거야
다른 값을 참조하여 문자열을 작성하는 데 사용할 경우 그 자체로 사용됩니다.이전에는 다음과 같이 기재해야 했습니다.
var anInt = 1;
var aBool = true;
var aString = "3";
var formated = string.Format("{0},{1},{2}", anInt, aBool, aString);
다음은 다음과 같습니다.
var anInt = 1;
var aBool = true;
var aString = "3";
var formated = $"{anInt},{aBool},{aString}";
않은 다른$@(미국의)「 」의을 할 수 있습니다.@""과 ''를 혼재시킵니다.$"" 보간 \\아!을 하다
var someDir = "a";
Console.WriteLine($@"c:\{someDir}\b\c");
출력:
c:\a\b\c
보간 문자열이 생성됩니다.
문자열을 구성하는 데 사용됩니다.보간된 문자열 식은 식을 포함하는 템플릿 문자열처럼 보입니다.보간된 문자열 표현식은 포함된 식을 식 결과의 ToString 표현으로 대체하여 문자열을 만듭니다.
ex:
var name = "Sam";
var msg = $"hello, {name}";
Console.WriteLine(msg); // hello, Sam
보간 문자열 내에서 식을 사용할 수 있습니다.
var msg = $"hello, {name.ToLower()}";
Console.WriteLine(msg); // hello, sam
은 '이 '모수순'이'모수순'이 '모수순'을 쓰지 된다'는 죠.String.Format.
var s = String.Format("{0},{1},{2}...{88}",p0,p1,..,p88);
일부 파라미터를 삭제하려면 모든 카운트를 갱신해야 합니다.이러한 경우는 없습니다.
주의: 좋은 옛것들은string.format포맷에 문화 정보를 지정하려는 경우에도 여전히 관련이 있습니다.
코드 예시
public class Person {
public String firstName { get; set; }
public String lastName { get; set; }
}
// Instantiate Person
var person = new Person { firstName = "Albert", lastName = "Einstein" };
// We can print fullname of the above person as follows
Console.WriteLine("Full-Name - " + person.firstName + " " + person.lastName);
Console.WriteLine("Full-Name - {0} {1}", person.firstName, person.lastName);
Console.WriteLine($"Full-Name - {person.firstName} {person.lastName}");
산출량
Full-Name - Albert Einstein
Full-Name - Albert Einstein
Full-Name - Albert Einstein
인터폴드 스트링입니다.문자열 리터럴을 사용할 수 있는 모든 위치에 보간된 문자열을 사용할 수 있습니다.프로그램을 실행하면 보간된 문자열 리터럴로 코드가 실행될 때 코드는 보간식을 평가하여 새로운 문자열 리터럴을 계산합니다.이 계산은 문자열이 보간된 코드가 실행될 때마다 발생합니다.
다음 예제에서는 모든 문자열 보간 값이 계산된 문자열 값을 생성합니다.최종 결과이며 유형 문자열이 있습니다.쌍컬리 괄호의 모든 항목(“{{“ and “}}”)단일 곱슬 괄호로 변환됩니다.
string text = "World";
var message = $"Hello, {text}";
위의 두 줄을 실행한 후 변수message'Hello, World'가 들어있습니다.
Console.WriteLine(message); // Prints Hello, World
레퍼런스 - MSDN
멋진 기능.왜 이것이 현악기보다 나은지에 대해 강조하고 싶습니다.일부 사용자에게는 분명하지 않는 사람도 있습니다.
누가 주문 줄을 말하는 걸 읽었어요.매개 변수와 일치하도록 형식을 "{0} {1} {2}"로 지정합니다.문자열에서 "{0} {1} {2}"을(를) 강제로 주문하지 않아도 됩니다.포맷은 "{2} {0} {1}"을(를) 수행할 수도 있습니다.그러나 매개 변수가 20개처럼 많으면 문자열의 순서를 "{0} {1} {2}..."로 지정해야 합니다.{19}. 뒤죽박죽일 경우 파라미터를 정렬하는 데 어려움이 있습니다.
$를 사용하면 파라미터를 카운트하지 않고 인라인으로 파라미터를 추가할 수 있습니다.따라서 코드를 읽고 유지하기가 훨씬 쉬워집니다.
$의 단점은 문자열 내의 파라미터를 쉽게 반복할 수 없다는 것입니다.입력해야 합니다.예를 들어 System을 입력하는 데 싫증이 난 경우.환경.NewLine, 문자열 할 수 있어요.형식 지정...{0}...{0}...{0}', 시스템.환경.NewLine) 단, $ 단위로 반복해야 합니다.$"{0}"을(를) 수행하여 문자열에 전달할 수 없습니다.$"{0}"이(가) "0"을 반환하기 때문에 형식을 지정합니다.
옆자리에서 나는 또 다른 중복된 tpoic에서 코멘트를 읽었다.뭐라고 말할 수 없어서, 여기 있습니다.그는 말했다.
string msg = n + " sheep, " + m + " chickens";
는 여러 문자열 개체를 만듭니다.사실은 그렇지 않아요.이 작업을 한 줄로 수행하면 문자열이 하나만 생성되어 문자열 캐시에 배치됩니다.
1) string + string + string + string;
2) string.format()
3) stringBuilder.ToString()
4) $""
모두 문자열을 반환하고 캐시에 값을 1개만 만듭니다.
한편, 다음과 같습니다.
string+= string2;
string+= string2;
string+= string2;
string+= string2;
4개의 ";"가 있기 때문에 캐시에 4개의 다른 값을 만듭니다.
따라서 다음과 같은 코드를 작성하는 것이 더 쉬워지지만 Carlos Munoz가 수정한 대로 5개의 보간 문자열을 작성합니다.
string msg = $"Hello this is {myName}, " +
$"My phone number {myPhone}, " +
$"My email {myEmail}, " +
$"My address {myAddress}, and " +
$"My preference {myPreference}.";
이렇게 하면 코드를 읽기 쉽게 하면서 캐시에 단일 문자열이 생성됩니다.퍼포먼스는 확실하지 않지만 MS가 아직 하지 않았다면 최적화할 수 있을 것입니다.
이 두 가지를 조합할 수도 있다는 점에 유의하십시오(좀 이상하지만).
// simple interpolated verbatim string
WriteLine($@"Path ""C:\Windows\{file}"" not found.");
그것은 끈보다 편리하다.포맷하고 인텔리센스도 사용할 수 있습니다.
테스트 방법은 다음과 같습니다.
[TestMethod]
public void StringMethodsTest_DollarSign()
{
string name = "Forrest";
string surname = "Gump";
int year = 3;
string sDollarSign = $"My name is {name} {surname} and once I run more than {year} years.";
string expectedResult = "My name is Forrest Gump and once I run more than 3 years.";
Assert.AreEqual(expectedResult, sDollarSign);
}
문자열 보간을 나타냅니다.
문자열 평가에 컴파일 시간 보호를 추가하므로 사용자를 보호할 수 있습니다.
.string.Format("{0}{1}",secondParamIsMissing)
에서는 보다 을 사용할 의 다양한 합니다.string.Format()★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 그 에 있는 도 알 수 요.{}인수와 됩니다.string.Format()호출을 받고 있어요
using System;
public class Example
{
public static void Main()
{
var name = "Horace";
var age = 34;
// replaces {name} with the value of name, "Horace"
var s1 = $"He asked, \"Is your name {name}?\", but didn't wait for a reply.";
Console.WriteLine(s1);
// as age is an integer, we can use ":D3" to denote that
// it should have leading zeroes and be 3 characters long
// see https://learn.microsoft.com/en-us/dotnet/standard/base-types/how-to-pad-a-number-with-leading-zeros
//
// (age == 1 ? "" : "s") uses the ternary operator to
// decide the value used in the placeholder, the same
// as if it had been placed as an argument of string.Format
//
// finally, it shows that you can actually have quoted strings within strings
// e.g. $"outer { "inner" } string"
var s2 = $"{name} is {age:D3} year{(age == 1 ? "" : "s")} old.";
Console.WriteLine(s2);
}
}
// The example displays the following output:
// He asked, "Is your name Horace?", but didn't wait for a reply.
// Horace is 034 years old.
$ 구문은 좋지만 단점이 하나 있습니다.
클래스 레벨의 [as]필드에서 선언된 문자열 템플릿과 같은 것이 필요한 경우...한 곳에서 잘 지낼 수 있을 것 같아요.
그런 다음 변수를 동일한 수준으로 선언해야 합니다.별로 쿨하지 않아요.
그 끈을 사용하는 것이 훨씬 좋다.이런 종류의 구문 형식 지정
class Example1_StringFormat {
string template = $"{0} - {1}";
public string FormatExample1() {
string some1 = "someone";
return string.Format(template, some1, "inplacesomethingelse");
}
public string FormatExample2() {
string some2 = "someoneelse";
string thing2 = "somethingelse";
return string.Format(template, some2, thing2);
}
}
지구본의 사용은 정말 좋지 않다. 그리고 그것 말고도 지구본과 함께 작동하지 않는다.
static class Example2_Format {
//must have declaration in same scope
static string some = "";
static string thing = "";
static string template = $"{some} - {thing}";
//This returns " - " and not "someone - something" as you would maybe
//expect
public static string FormatExample1() {
some = "someone";
thing = "something";
return template;
}
//This returns " - " and not "someoneelse- somethingelse" as you would
//maybe expect
public static string FormatExample2() {
some = "someoneelse";
thing = "somethingelse";
return template;
}
}
어떻게 동작하는지는 모르지만, 가치관을 탭 하는 데도 사용할 수 있습니다!
예:
Console.WriteLine($"I can tab like {"this !", 5}.");
물론 탭을 변경할 수 있는 것처럼 "this!"를 변수나 의미 있는 것으로 대체할 수 있습니다.
문자열의 $ 기호는 C#의 기능인 보간 문자열을 정의하기 위한 것으로, 문자열은 보간식을 포함할 수 있는 "true string"입니다.
자세한 내용은 답변의 출처와 예를 참조하십시오.https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated
언급URL : https://stackoverflow.com/questions/31014869/what-does-mean-before-a-string
'programing' 카테고리의 다른 글
| WPF의 리소스인 아이콘을 사용하려면 어떻게 해야 하나요? (0) | 2023.04.10 |
|---|---|
| 기능 프로그래밍의 '접기' 기능과 동등한 '피토닉'은 무엇입니까? (0) | 2023.04.10 |
| prespare For Segue 전달 방법: 객체 (0) | 2023.04.10 |
| git 'pull request'를 'push request'라고 부르지 않는 이유는 무엇입니까? (0) | 2023.04.10 |
| 셸: 다른 셸 스크립트에서 셸 스크립트를 호출하려면 어떻게 해야 합니까? (0) | 2023.04.10 |
