黙々とC#

"In a mad world of VBA, only the mad are sane" 『VBAという名の狂った世界で狂っているというのなら私の気は確かだ』

using

本記事は、Excel C# Script入門講座の1記事です。

using

usingステートメントは、IDisposableインターフェースを実装したオブジェクトを呼び出した際に、確実にDispposeメソッドが呼ばれるように保証するための簡易構文です。

#r "System.Drawing"
using System.Drawing;

using (var font1 = new Font("Arial", 10.0f)) 
{
    var charset = font1.GdiCharSet;
}

上記例のFontオブジェクトのように、アンマネージ リソース (この場合はデバイス コンテキスト) にアクセスするマネージ型の例です。アンマネージ リソースや、それをカプセル化するクラス ライブラリ型は他にもたくさんあります。そのような型はすべて、IDisposable インターフェイスを実装する必要があります。

一般に、IDisposable オブジェクトを使用するときは、それを using ステートメントで宣言して、インスタンス化する必要があります。 using ステートメントは、ステートメントブロックを抜けると必ず Dispose メソッドを呼び出します。 Disposeメソッド が呼び出されるとすぐに、オブジェクト自体がスコープの外側に出されます。 オブジェクトは、using ブロック内では読み取り専用です。変更したり再割り当てしたりすることはできません。

using ステートメントを使うと、オブジェクトでのメソッドの呼び出し中に例外が発生した場合でも Dispose が必ず呼び出されます。 usingステートメントは、オブジェクトを try ブロックに配置し、finally ブロックで Dispose を呼び出すコードと等価です。