変数が 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 つしか持っていませんが、同じものに対してnew2 つ持っています。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) が正しい答えではないということです。これは、ここで説明されているような問題では機能しないためです。