다른 변형 행렬이있는 그래픽 객체가있는 프리미티브를 그릴 필요가 있습니다. 나는 행렬을 폐기해야 궁금해 또는 그래픽 나를 위해 그것을 할 것입니다 :Graphics.Transform에서 반환 한 행렬을 처리해야합니까?
using (var g = Graphics.FromImage(...))
{
... some code ...
var tmp = g.Transform;
g.TranslateTransform(...);
... some code ...
g.Transform = tmp;
// should I call tmp.Dispose() here?
tmp.Dispose();
... some code that use g ....
}
http://msdn.microsoft.com/en-us/library/system.drawing.graphics.transform.aspx
는 말한다 :
행렬을 반환하기 때문에 변형에 의해 재산 은의 복사본입니다 기하학적 변환을 사용하면 더 이상 필요하지 않을 때 행렬의 을 처분해야합니다.
g.Transform = tmp;
이후에는 필요하지 않습니다. 처리해야합니까?
일반적으로 'IDisposable' *을 구현하는 객체를 처리하는 것은 사용자의 책임이므로 * 처리하는 것이 좋습니다. 이 경우 나는 잘 모르고 당신이 옳다고 생각하지만 일반적으로 객체의 소유권을 알아야합니다. 어딘가에서 스트림 객체를 얻는다면 (예를 들어 웹 요청과 입출력 스트림을 생각해보십시오), 그 객체를 처리하는 것은 사용자의 책임이 아니므로 안됩니다. –
Lasse가 지적했듯이 WSS/SharePoint에서 SPContext.Current에서 반환 된 개체와 같이 개체를 처리하면 안되는 경우가 있습니다. 항상 좋은 생각은 아닙니다. –
@Lasse, @ 토마스 - 둘 다 감사합니다, 완전히 동의합니다. 더 명확하게하기 위해 내 대답을 업데이트했습니다. – razlebe