コードは次のとおりです。
using (MemoryStream memorystream = new MemoryStream(bytes))
{
using (BinaryWriter writer = new BinaryWriter(memorystream))
{
writer.Write((double)100.0);
}
return memorystream.ToArray();
}
上記のコードは、両方のオブジェクトを適切に破棄するのに適切ではありませんか?
コード分析はまったく役に立ちますか?変数名と名前空間に関するごみ情報以外に、現実ではない多くのことについて不平を言っているようです。多分それは役に立つかもしれないと本当に思っています、そして私はちょうど要点を逃しています。
ここでは、MemoryStreamが破棄されるかどうか(そうでないかどうか)に関する懸念に対処するために、VSコード分析でまったく同じ警告が表示される例を示します。明らかに、ここでは何も処分されていません
public class MyClass : IDisposable
{
public void DoSomethingElse()
{
}
#region IDisposable Members
public void Dispose()
{
throw new NotImplementedException();
}
#endregion
}
public class MyOtherClass : IDisposable
{
public MyOtherClass(MyClass mc)
{
}
public void DoSomething() { }
}
public void Foo()
{
using (MyClass mc = new MyClass())
{
using (MyOtherClass otherclass = new MyOtherClass(mc))
{
otherclass.DoSomething();
}
mc.DoSomethingElse();
}
}