コード例でこの C# using ステートメントを見ました。
using StringFormat=System.Drawing.StringFormat;
それは一体何ですか?
コード例でこの C# using ステートメントを見ました。
using StringFormat=System.Drawing.StringFormat;
それは一体何ですか?
これは、タイプ名を短い名前にエイリアスしています。名前空間のエイリアスにも同じ構文を使用できます。ディレクティブの使用を参照してください。
(リチャードに応じて更新)
これはエイリアスです。今後、ユーザーはStringFormatを使用してSystem.Drawing.StringFormatを参照できます。名前空間全体を使用したくない場合 (たとえば、名前の競合の問題がある場合) に便利です。
ソース: MSDN のディレクティブの記事を使用
おそらく、Acme.Stuff などの別の名前空間で、別の無関係な StringFormat が宣言されています。その場合、次のような混乱が生じます。
using System.Drawing; // Contains StringFormat type.
using Acme.Stuff; // Contains another StringFormat type.
private void Foo()
{
StringFormat myFormat = new StringFormat(); // which one to use?
}
エイリアシングは、 StringFormat=System.Drawing.StringFormatで使用すると、混乱の一部が解消されます。
これにより、System.Drawing.StringFormat へのエイリアスが定義されます。
これは、次の例と同じです。
using SQL = System.Data.SqlServer;
SQL.SqlConnection sql = new SQL.SqlConnection();
これは、StringFormat を System.Drawing.StringFormat のエイリアスとして使用していることを意味します。
名前空間のエイリアスです
using キーワードは、名前空間またはエイリアス クラスのインポート、または破棄可能なオブジェクトのスコープの管理に使用されます。ここでは、名前空間の使用について説明します。
using StringFormat=System.Drawing.StringFormat;
ここでの using の使用方法は、C# では少し変わっていますが、Java の import ステートメントではより一般的です。これが行うことは、System.Drawing 名前空間全体をインポートせずに StringFormat エイリアスを提供することです。Java のバックグラウンドを持つ一部の人々は、全フレームスペース (別名 Java パッケージ) ではなく、使用されているクラスのみを積極的にインポートすることを好みます。おそらく、特定のクラス名のみをインポートする場合、潜在的な名前の競合を積極的に回避しますが、C# ではあまり一般的ではなく、Visual Studio では Java に対して Netbeans が行うように、競合を推奨していません。
エイリアシングのより一般的な使用法は、名前の競合があるときにクラス名を短縮されたエイリアスに解決することです。
using System.Drawing;
using AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing;
/* AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing has a StringFormat class */
using AwesomeStringFormat = AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing.Stringformat;
using StringFormat = System.Drawing.StringFormat;
public class AwesomeForm() : Form
{
private AwesomeForm()
{
AwesomeStringFormat stringFormat = new AwesomeStringFormat();
stringFormat.Color = Color.Red;
/* etc */
}
}