我在代码示例中看到了这个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 */
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top