2016-09-08 1 views
4

오늘은 내가 먼저 컴파일을 wouldnt 생각 이상한 뭔가를 발견했습니다. 그것은 오류를 제공하지만 여전히 컴파일!. 왜 이런거야? 속성도 이와 같이 작동합니까?쉼표가없는 속성 oneliner는 무엇입니까?</p> <pre><code>[Serializable Obsolete] class Program { static void Main(string[] args) { } } </code></pre> <p>공지 쉼표가 직렬화 및 사용되지 않는 사이에 누락되었습니다

+0

알아두면 좋을 것 같습니다. 공백을 구분 기호로 사용하여 단일'['']'그룹 안에 속성을 연결할 수 있습니다. '[Serializable Obsolete MyA MyB]'(여기서'MyA'와'MyB'는 커스텀 속성입니다). 일반적으로 (대부분의 사람들이 익숙한) 각 속성은 자신의'['']'로 묶여 있습니다. – Sinatr

+1

코드를 시도하고 리플렉션을 통해 적용된 속성을 확인했습니다. 둘 다 수업에 적용되는 것 같습니다. _ 당신이 얻는 오류는 무엇입니까? 분명히 컴파일러 오류가 없습니다 (그렇지 않으면 컴파일이 성공하지 못합니다). "속성이이 선언 유형에 유효하지 않습니다."라는 오류가 발생합니다. ReSharper가이 문제를 제기 한 사람이며 첫 번째 속성을 두 번째 속성에 적용하고 싶다고 생각합니다. 어쨌든, 쉼표없는 구문은 C#에서 유효합니다. –

답변

0

레네가 이미 resharper가이 오류를 내고 있다고 말한 것처럼 보입니다. 나는 resharper를 일시 중지하고 지금은 전혀 오류가 발생하지 않습니다. 그래서 이것은 C#에서 속성에 대해 완벽하게 훌륭한 구문 인 것 같습니다.

resharper가이 오류를주는 이유는 무엇입니까? 물론 이상한 구문과 규칙에 위배 될 수 있지만 경고는 오류가 아닌 것입니다.

관련 문제