2014-06-18 4 views
-5

나는 다음과 같은 구문이C# 문자열 형식 인수

String.Format("Today is {0}, {1}", day,month); 

내가 어떻게이 형식의 작품을 그냥 궁금했다 작동하는지 알아?

String.Format("Today is {day}, {month}", day,month); 

C#은 숫자를 사용자 정의 이름으로 대체하는 것을 어떻게 해석합니까?

+4

*이 형식이 어떻게 작동하는지 궁금 해서요? * ... 그렇지 않습니다. –

+3

[DebuggerDisplayAttribute] (http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggerdisplayattribute.aspx)는 이러한 행에 따라 작업을 수행하지만 특별한 경우입니다. – ClickRick

+1

두 번째 형식이 효과가 있다고 생각한 부분을 어디에서 보았습니까? 아마도 더 많은 맥락에서 우리는 무슨 일이 일어나고 있는지 설명 할 수 있습니다. @ClickRick 나는 또한 [WebGet] (http://msdn.microsoft.com/en-us/library/system.servicemodel.web.web.attribute.aspx)와 같은 URI를 처리하는 속성 중 일부를보고 그를 볼 수 있었다 –

답변

4
String.Format("Today is {day}, {month}", day,month); 

Does not work, 그것은 System.FormatException 발생합니다.

to the documentation에 따르면 대체 필드는 두 번째 예가 따르지 않는 { index[,alignment][:formatString]} 형식이어야합니다.

+0

True, 그러나 [Roslyn (따라서 C# 6)에는 다소 비슷한 내용이 포함될 수 있습니다. (http://roslyn.codeplex.com/discussions/540869) – Magus

+0

제안 된 문자열 보간 기능을 사용하면 더 많은 '$'와 유사합니다. 오늘은 {day}, { 월} ". – MarcinJuraszek

0

{}의 항목은 0에서 시작하는 정수 여야하며 .Format (...) 메소드의 두 번째 인수에있는 변수의 수와 일치해야합니다. LinqPad와 같은 프로그램을 다운로드하여 이와 같은 테스트 스크립트를 실행하십시오.