나는 경우C#을 문자열 삽입은
... C 번호에 비교적 새로운 해요 및 문자열 삽입 (즉 "some {0} string", toInsert
) 알아 내려고 노력하고, 내가 기대하지 않은 문제가 가로 질러 여기서 두 생성자가 있습니다 :
public MyClass(String arg1) { ... }
public MyClass(String arg1, String arg2) { ... }
문자열 삽입시 첫 번째 생성자를 사용할 수 있습니까?
...
toInsert = "def"
myClass = new MyClass("abc{0}ghi", toInsert)
...
또는 C# 두 번째 생성자으로 이것을 해석하고 첫 번째 인수로 리터럴 "abc{0}ghi"
을 통과 할 것인가?
사실 String.Format()은 StringBuilder.AppendFormat()을 호출합니다. –
그래서 항상 하나의 생성자가있는 클래스가 새로운 클래스를 얻는 길에서 버그를 피하기 위해 string.Format()에서 서식을 래핑 하시겠습니까? – tgray
아니요, 그것은 부당한 결론입니다. 새로운 MyClass (A)는 하나의 매개 변수를받는 ctor를 호출하고 A와 B를 대체하는 것에 상관없이 새로운 MyClass (A, B)는 2 개의 매개 변수를받는 ctor를 호출합니다. A에 대해 "abc {0} ghi" 이것은 당신이 2 개의 매개 변수를 통과했다는 사실을 바꾸지 않습니다. – Cheeso