我在一个代码示例中看到了这个 C# using 语句:
using StringFormat=System.Drawing.StringFormat;
那是什么意思?
我在一个代码示例中看到了这个 C# using 语句:
using StringFormat=System.Drawing.StringFormat;
那是什么意思?
这是一个别名,从现在起,用户可以使用 StringFormat 来引用 System.Drawing.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可以消除Aliasing问题,这使得内容更加清晰易懂。
这将定义一个 System.Drawing.StringFormat 的别名。
这与以下示例相同:
using SQL = System.Data.SqlServer;
SQL.SqlConnection sql = new SQL.SqlConnection();
这是一个命名空间的别名。
using 关键字用于导入命名空间或别名类,或用于管理可释放对象的作用域。这里我们谈论的是命名空间的使用。
using StringFormat=System.Drawing.StringFormat;
这里使用的方式在C#中有些不寻常,但在Java的导入语句中更常见。它的作用是提供一个StringFormat的别名,而不是导入整个System.Drawing命名空间。一些具有Java背景的人喜欢主动地仅导入所使用的类,而不是整个命名空间(也称为Java包)。可以说,如果只导入特定的类名,您可以主动避免潜在的名称冲突,但在C#中这并不常见,Visual Studio也没有像Netbeans对Java那样鼓励这种做法。
别名的更常见用法是在存在命名冲突时将类名解析为缩写的别名。
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 */
}
}