这个 C#“使用”是什么? 指示?

发布于 2024-07-25 11:38:42 字数 122 浏览 4 评论 0原文

我在代码示例中看到了这个 C# using 语句:

using StringFormat=System.Drawing.StringFormat;

这是什么意思?

I saw this C# using statement in a code example:

using StringFormat=System.Drawing.StringFormat;

What's that all about?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

素手挽清风 2024-08-01 11:38:42

这就是将类型名别名为更短的名称。 相同的语法也可用于别名命名空间。 请参阅using 指令

(针对理查德的回应进行了更新)

That's aliasing a typename to a shorter name. The same syntax can also be used for aliasing namespaces. See using directive.

(Updated in response to Richard)

拔了角的鹿 2024-08-01 11:38:42

它是一个别名,从现在开始,用户可以使用StringFormat来引用System.Drawing.StringFormat。 如果您不想使用整个命名空间(例如,在名称冲突问题的情况下),它会很有用。

来源:使用来自 MSDN 的指令文章

It's an alias, from now on, the user can use StringFormat to refer to System.Drawing.StringFormat. It's useful if you don't want to use the whole namespace (in case of name clash issues for example).

source: using Directive article from MSDN

活雷疯 2024-08-01 11:38:42

也许在另一个命名空间(如 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 消除了一些混乱。

Perhaps a different, unrelated StringFormat is declared in another namespace like Acme.Stuff. If that were the case, this would cause confusion:

using System.Drawing; // Contains StringFormat type.
using Acme.Stuff;  // Contains another StringFormat type.

private void Foo()
{
    StringFormat myFormat = new StringFormat(); // which one to use?
}

Aliasing is with using on the StringFormat=System.Drawing.StringFormat clears up some of the confusion.

浮世清欢 2024-08-01 11:38:42

这意味着您正在使用 StringFormat 作为 System.Drawing.StringFormat 的别名;

It means you're using StringFormat as an alias for System.Drawing.StringFormat;

灼痛 2024-08-01 11:38:42

这将为 System.Drawing.StringFormat 定义一个别名。

这与这个例子是一样的:

using SQL = System.Data.SqlServer;

SQL.SqlConnection sql = new SQL.SqlConnection();

This will define an alias to System.Drawing.StringFormat.

That's the same thing like this example:

using SQL = System.Data.SqlServer;

SQL.SqlConnection sql = new SQL.SqlConnection();
悍妇囚夫 2024-08-01 11:38:42

它是命名空间的别名

It's a alias for the namespace

抽个烟儿 2024-08-01 11:38:42

using 关键字用于导入名称空间或别名类或用于管理一次性对象的范围。 这里我们讨论的是命名空间的使用。

using StringFormat=System.Drawing.StringFormat;

这里使用的方式在 C# 中有点不寻常,但在 Java import 语句中更常见。 它的作用是提供 StringFormat 别名,而不导入整个 System.Drawing 命名空间。 一些具有 Java 背景的人喜欢主动导入正在使用的类,而不是整个 anmespace(又名 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 */
    }
}

The using keyword is used for importing namespaces or aliasing classes or for managing scope on disposable objects. Here we are talking about the namespace usage.

using StringFormat=System.Drawing.StringFormat;

The way using was used here is a little unusual in C# but more common in Java import statements. What it does is provide a StringFormat alias without importing the entire System.Drawing namespace. Some people with a Java background like to proactvely import only the classes being used rather than whole anmespaces (aka Java packages). Arguably you proactively avoid potential name conflicts if you import only specific class names but it isn't very common in C# and Visual Studio doesn't encourage it the way, say, Netbeans does for Java.

The more common usuage of aliasing is to resolve class names to a shortened alias when there is a naming conflict.

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 */
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文