题
我在代码示例中看到了这个C#using语句:
using StringFormat=System.Drawing.StringFormat;
那是什么意思?
解决方案
将typename别名为较短的名称。相同的语法也可用于别名命名空间。请参阅使用指令。
(更新以回应理查德)
其他提示
这是别名,从现在开始,用户可以使用 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;
这里使用的方式在C#中有点不寻常,但在Java import语句中更常见。它的作用是提供一个StringFormat别名而不导入整个System.Drawing命名空间。一些具有Java背景的人喜欢直接导入所使用的类而不是整个空间(也称为Java包)。如果只导入特定的类名,可以主动避免潜在的名称冲突,但在C#中并不常见,Visual Studio也不会像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 */
}
}
不隶属于 StackOverflow