7

.net 4에서 "동적"키워드를 사용하지 않도록 설정할 수있는 방법이 있습니까?C# - 동적 키워드 사용 안 함

동적 키워드를 사용하면 VS2010의 코드 분석 기능에서 빌드가 실패 할 수도 있지만 잘 만들 수 없다고 생각했습니다.

+7

왜? 역동성에 관한 악은 없습니다. –

+11

개발자 팀 사이에 규칙을 적용하려고합니까? 이 경우에는 grep 및 크리켓 배트라는 두 가지 도구를 제안합니다. –

+0

크리켓 배트? 어서 가축 찌꺼기가 훨씬 효과적입니다. http://www.enasco.com/product/C13638N –

답변

5

이것은 C# 4.0 언어의 일부이므로 실제로는 그렇지 않습니다.

FXCop을 사용하여 찾아보고 빌드가 실패하면 빌드를 실패 할 수 있습니다.

스타일 경찰이 대신 작동 할 수 있습니다 :

http://code.msdn.microsoft.com/sourceanalysis

여기에 같은 문제가 어떻게 스타일 경찰이 해답이 될 수있는 얘기 링크입니다. 또한 완벽하지는 않지만 FX 관리자에게 동적 키워드를 찾는 방법에 대한 글이 있습니다.

http://social.msdn.microsoft.com/Forums/en/vstscode/thread/8ce407ba-bdf7-422b-bbcd-ca4701c3a76f

+0

나는 이것을 시도 할 것이다. – chief7

+0

FxCop은 동적 클래스 수준 필드, 메서드 매개 변수 및 메서드 반환을 DynamicAttribute를 통해 찾을 수 있지만 메서드 내부에서 로컬 변수를 찾을 수 없기 때문에 속성없이 개체로 변환됩니다. – chief7

+0

@ cheif7 좀 더 살펴보고 스타일 경찰이 갈 길이 될지도 모릅니다. 나는 같은 문제에 관한 몇몇 게시물에 대한 링크를 올렸다. – kemiller2002

2

대상 .NET 1.0? :-)

또는 코드 리뷰를 수행하십시오.

(또는, 동적의 사용을 허용하는 사용자의 FxCop 또는 CA 규칙 쓰기 아주 쉽게해야 덜 우스운 예정) 당신이 지금 ++은 C에 대한 매크로 권리를 죽이지 않을까요

를? :-)

+0

# 동적 개체 정의 –

2

동적 키워드는 악의적 인 것이 아니라 사용하는 것이 가능합니다.

런타임 중에 만 찾을 수있는 코드 오류가 발생합니다. 이것은 모든 비용을 피해야합니다. 런타임 오류가 잘못되었습니다. 컴파일 시간 오류가 좋습니다.

다음과 같은 방법으로 자신 만의 표준을 설정할 수 있습니다. http://joel.fjorden.se/static.php?page=CodeStyleEnforcer

+2

리플렉션도 마찬가지입니다. 아무도 반성을 막지는 못했지만, 매우 특정한 작업을위한 매우 구체적인 도구라는 것을 알았고 때로는 퍼포먼스 히트와 컴파일 타임 오류의 부족이 가치가 있습니다. 종류의 것들. 동적 인 동토. 기본적으로 모든 곳에서 사용하는 것은 비참하지만 동시에 절충안이 가치가있는 특정 유형의 항목이 있습니다. –

+0

유효하지 않거나 레지스트리 또는 구성 파일이 있다고 가정하는 파일을 디스크에서 읽는 것 또한 "런타임에만 발견됨"입니다. :-) –

2

Microsoft.CSharp.dll에 대한 참조를 제거하면 모든 dynamic의 사용이 컴파일되지 않을 수도 있습니다.

1

나는 동적 키워드에 대한이 비이 성적인 두려움이 무엇인지 이해하지 못합니다. 익명 변수에 대한 이러한 유형의 히스테리와 .NET 3.5에 대한 var 키워드는 합법적으로 정적으로 정의 된 유형이므로 바보였습니다.

동적 키워드는 매우 전문화 된 목적으로 제공되며, 이유를 알지 못하는 사람들이 왜 그것을 사용하고 싶은지 알 수 없습니다. 그러나 동적 키워드를 포함한 .NET 4의 새로운 기능 중 일부를 설명하는 1 회의 팀 회의를 통해이 문제를 해결할 수 있습니다. 나는 당신이 팀의 선배 또는 수석 리더라고 생각합니다. 그들이 동적 키워드를 사용하여 가장 먼저보아야 할 필요가 있다고 느낀다면 팀에게 알리는 것이 매우 쉽습니다.

이것은 COM interop 활동을 작성하지 않기 때문에 우리가 동적 키워드를 사용할 가능성이 거의 없기 때문에 팀원에게 제공 한 지침이었습니다. 과거에는 Linfu 나 Castle과 같은 확립 된 라이브러리에 모든 유형의 동적 프록시 사용을 연기하고 동적 키워드를 사용하거나 사용하지 않을 동적 프록시 구현을 남겨 두었습니다.

+0

나는 동적 인 것이 com interop보다 더 많이 사용될 수 있다고 생각한다 .... – Amir