C#中的'using'语句有什么用?

3
这个 C# using 语句有什么用途?
namespace Microsoft.Owin.Host.SystemWeb.DataProtection {
    using DataProtectionProviderDelegate = Func<string[], Tuple<Func<byte[], byte[]>, Func<byte[], byte[]>>>;
    using DataProtectionTuple = Tuple<Func<byte[], byte[]>, Func<byte[], byte[]>>;

这里提取

根据MSDN的说明,using语句有两种用法。

  1. (directive) 直接导入类型或使用别名方式导入当前文件中的类型。
  2. (statement) 确保IDisposable对象被正确释放。

但在此情况下,它被用于分配委托类型。 请问有人能解释这种用法,并提供文档链接吗?


7
第一个不就是给东西起别名吗? - James Thorpe
1
请删除 "using system",这样更明显你想了解命名空间内部的内容。另外,+1 评论和 +1 回答哪个会获胜呢? - Fredou
已删除第一个 using,谢谢,是的,这是 James 的第一个。我以为只有另一个命名空间可以被别名,但类型也可以被别名。 - BuddhiP
1个回答

16
在这种情况下,使用using语句用于给类型起别名,所以是的,符合你提出的第一点。
后来的代码中,不必再键入:
var x = new  Tuple<Func<byte[], byte[]>, Func<byte[], byte[]>>(/* ... */);

您可以写:

var x = new DataProtectionTuple(/* ... */);

哦,太酷了。在 MSDN 上它说“为命名空间或类型创建别名”,之前没有注意到“类型”这部分。谢谢。 - BuddhiP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接