変数が IDisposable の場合using
、廃棄を管理するためのキーワードがあります。しかし、メソッドで値を返す場合はどうすればよいusing
でしょうか?
StringContent stringToStringContent(string str)
{
using (StringContent content = new StringContent(str))
{
return content;
}
}
void logStringContent()
{
using (StringContent content = stringToStringContent("test"))
{
Debug.WriteLine(content.ToString());
return;
}
}
上記の例では、1 つしか持っていませんが、同じものに対してnew
2 つ持っています。using
なのでバランスが悪い気がします。次のほうがよいですか。
a)両方using
を保持し、言語/コンパイラは二重の処分を避けるためにその仕事を知っていますか?
b) まとめて保管using
しnew
、それ以外の場合は必要ありませんか?:
void logStringContent()
{
StringContent content = stringToStringContent("test");
Debug.WriteLine(content.ToString());
return;
}
c)using
戻ってこないときだけ保管して、戻ってきたら必要ない?:
StringContent stringToStringContent(string str)
{
return new StringContent(str);
}
私が感じることができる唯一のことは、b) が正しい答えではないということです。これは、ここで説明されているような問題では機能しないためです。