var cv = (new CustomValidator()
{
ErrorMessage="Formato de telefone inválido",
ControlToValidate = "txtTelefoneIni", //<-- see the extra comma
});
답변
법적 구문입니다.
정말 그렇습니다.
개체 이니셜 라이저 구문을 사용하여 개체를 구성 할 때 이니셜 라이저 블록을 끝내더라도 마지막 항목 다음에 쉼표를 사용할 수 있습니다.
이유는 이전에 마지막 항목이 object-initializers의 # 1 컴파일 타임 문제 인 후에 쉼표를 추가하는 것을 잊어 버리기 때문에 나중에 다시 돌아와 편집하는 것이 더 쉬운 이유 일 수 있습니다.
코드 생성기를 작성하는 사람들에게 이익이되는 것은 합법적이라고 들었습니다. 누가 알아? 나 한테 좀 어색해 보이는구나. – Will
버전 제어 관점에서 보면 멋지 네요. 선을 수정하지 않고 다른 항목을 추가 할 수 있기 때문에 diff가 더 깨끗합니다. – Cascabel
나는 솔직히 말해서 이것에 대해 두 사람의 마음을 가지고 있습니다. 개인적으로 필자는 쉼표를 추가하지 않고 필요할 때 추가하지만, 필자도 사용하는 코드 생성기에 대한 요점을 볼 수 있으므로 완벽한 해결책은 아닙니다. 어쨌든, 여기 머물러 있습니다. –
의도적입니다. enum 멤버에서도 작동합니다. (그래서 더 많은 것들을 추가하는 것이 더 쉽습니다)
올바른 C# 구문이기 때문에 컴파일됩니다. 또한 배열을 사용하여 동일한 작업을 수행 할 수 있습니다.
string [] meh = { "a", "b", "c",};
허용됩니다. 일반적으로 이러한 형식의 후행 쉼표를 허용하고 실제로 해당 "권한"을 사용하면 프로그래머가 이전 항목의 끝에 쉼표를 추가하지 않고도 목록에 항목을 추가 할 수 있으므로 유용합니다. 개체 이니셜 라이저 :
는 자사의 C#을
에 유효한 구문은
var c = new List<int>() { 1, 2, 3 ,};
그것은 C# language specification의 일부입니다 볼 수 있습니다.
FWIW, 그것은 (열거 형을 정의 할 때 특히)와 같은 구문을 사용하는
내가 제일 좋아하는 이유 C. 이미 유효 당신이 목록에 항목을 추가 할 때, 소스 컨트롤은 한 줄에 변화를 볼 수 있다는 것입니다 오직 (새로운 것). 그것은 (쉼표가 추가 되었기 때문에) 이전 버전을 수정 된 것으로 태그 지정하지 않습니다. 훨씬 더 쉽게 읽을 수있는 diff.
내 2 센트.
- 1. int main() {}이 왜 컴파일됩니까?
- 2. java.lang.Object o = 1; // 왜 컴파일됩니까?
- 3. 왜 아래 코드가 VS2010에서 성공적으로 컴파일됩니까?
- 4. 왜이 일반 코드가 컴파일됩니까?
- 5. 왜이 코드는 제네릭과 함께 컴파일됩니까?
- 6. a-b (= 100)가 C#에서 컴파일됩니까?
- 7. C++ 코드가 어셈블리 코드로 컴파일됩니까?
- 8. 익명 클래스는 Java로 어떻게 컴파일됩니까?
- 9. 프리 프로세서 정의가 라이브러리로 컴파일됩니까?
- 10. 해석기가 실제로 메모리에서 사전 컴파일됩니까?
- 11. HD 사진 소스가 ARM에서 컴파일됩니까?
- 12. mxmlc가 linux 및 windows에서 다르게 컴파일됩니까?
- 13. Java 클래스에서 Groovy Closure 호출 - 컴파일됩니까?
- 14. 각 명령어는 x86 어셈블리에서 얼마나 많이 컴파일됩니까?
- 15. 제네릭은 JIT 컴파일러에 의해 어떻게 컴파일됩니까?
- 16. 조건부 디버그 - 아직 RELEASE 코드로 컴파일됩니까?
- 17. Erlang OTP 릴리즈가 HiPE와 함께 컴파일됩니까?
- 18. LINQ to Entites 4.0 쿼리는 기본적으로 컴파일됩니까?
- 19. 언제 ASP.NET 웹 사이트 프로젝트가 다시 컴파일됩니까?
- 20. 왜 컴파일됩니까? 코드가 형식 매개 변수에 대한 제한 조건을 위반하는 것 같습니다
- 21. AS3 : SWF는 외부 .as 클래스 파일에서 어떻게 컴파일됩니까?
- 22. 이 C++ 코드는 end return 문없이 어떻게 컴파일됩니까?
- 23. Visual Studio의 .NET 프로젝트는 항상 하나의 파일로 컴파일됩니까?
- 24. Objective-C는 원시 코드 또는 바이트 코드로 컴파일됩니까?
- 25. 어셈블리에서 C++ by-ref 인수 전달은 어떻게 컴파일됩니까?
- 26. 컴파일 된 쿼리에 추가 절을 적용하면 다시 컴파일됩니까?
- 27. /clr이있는 Visual Studio C++ 프로젝트에서 종속성도 관리되는 코드로 컴파일됩니까?
- 28. 왜 'setprofile'인쇄이 인쇄 왜
- 29. 왜
- 30. Eclipse에서 'Function'MessageBoxA '을 (를) 확인할 수 없습니다'오류가 발생하지만 여전히 성공적으로 컴파일됩니까?
합법적입니다. cv가 새로운 CustomValidator가됩니다. CV의 필드는 생성자를 통해 params를 전달하는 대신 명시 적으로 초기화됩니다. – Maciek