var(anonymous) キーワードとは何か、このキーワードを主に使用する方法と場所を知っています (LINQ - そうでなければ、var キーワードを使用できる場所の関数の正確な戻り値を知りませんでした)。
これらの 2 つの行に違いがないことはわかっていますが、var キーワードがメモリ リークの問題を解決するのではないかと疑っています。
例えば :
C#:
Window window=new Window();
var window=new Window();
var(anonymous) キーワードとは何か、このキーワードを主に使用する方法と場所を知っています (LINQ - そうでなければ、var キーワードを使用できる場所の関数の正確な戻り値を知りませんでした)。
これらの 2 つの行に違いがないことはわかっていますが、var キーワードがメモリ リークの問題を解決するのではないかと疑っています。
例えば :
C#:
Window window=new Window();
var window=new Window();
まず、匿名のキーワードでvar
はありません。あなたのコードには匿名のものは何も表示されていません。第二に、「これらの 2 つの行に違いがないことがわかっている」場合、なぜメモリ リークに関して何かが変わるのではないかと疑うのでしょうか。いいえ、そうではありません。いいえ、そもそもここに「メモリリーク」はおそらくありません。
Window
が実装されているかどうかを確認しますIDisposable
。その場合、およびの使用がローカル スコープに限定されている場合は、次を使用します(これにより、ガベージ コレクターを待つのではなく、リソースの割り当てがすぐに解除されるようになります)。window
using
using(var window=new Window()) {
// NOT SHOWN: configure it, display it (modally), read the final values, etc
}
上の例でvar
は、「window」を 1 行に 3 回入力する必要がないようにするための純粋な利便性があります。
キーワードはvar
匿名型で使用でき、型推論に使用できます (変数の型はコンパイラによって推論できます)。これらの 2 行は、まったく同じ IL コードにコンパイルされます。
Window window=new Window();
var window=new Window();
あなたが言及しているメモリリークの問題はわかりませんが、一方がメモリリークを引き起こすことはありません。