프로젝트에 대한 전체 코드 분석을 실행 중이며 500 문제가 있다고합니다. 지금은 300으로 낮추었지만 해결책을 찾을 수없는 문제로 고민하고 있습니다.이 시나리오에서 코드 분석 "CA2000"규칙을 해결 하시겠습니까?
규칙 CA2000 주 :이 범위를 벗어에 일회용 객체가 명시 적으로 모든 참조하기 전에 배치되지 않은 경우
는 객체가 불확정 한 번에 배치 될 가비지 컬렉터의 파이널을 실행할 때 그 물체. 개체의 종료 자 실행을 방해하는 예외적 인 이벤트가 발생할 수 있으므로 개체를 대신 명시 적으로 처리해야합니다.
위와 연결된 페이지에서 규칙에 대한 추가 정보를 찾을 수 있습니다. 규칙에 실패
코드이있다 :
internal Window(Game game, Control parent, string title, bool visible)
: base(game, parent, visible, new ScreenspaceRectangle(game, Color.Black, Vector.Zero, Vector.Zero))
{
}
그 설명은 다음과
CA2000 : Microsoft.Reliability : 방법에서는 'Window.Window (게임, 제어 문자열, 부울) '에 대한 모든 참조가 범위를 벗어나기 전에'새로운 ScreenspaceRectangle (game, Color.Black, Vector.Zero, Vector.Zero) '객체에 System.IDisposable.Dispose를 호출합니다.
이 문제는 생성되는 개체 주위의 "using"문을 사용하여 정상적으로 해결 될 수 있음을 이해하며 항상 적절히 처리되도록합니다. 그러나이 경우 어떻게 해결할 수 있습니까?
ScreenspaceRectangle을 폐기해야하는 이유는 무엇입니까? –