Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用指令时的赋值_C#_Episerver 6 R2 - Fatal编程技术网

C# 使用指令时的赋值

C# 使用指令时的赋值,c#,episerver-6-r2,C#,Episerver 6 R2,我只是找到了下面的代码,不知道为什么要这样做。冲突风险 using DiffTreeNode = EPiServer.Enterprise.Diff.TreeNode; 然后在课堂上,它像往常一样被使用 你为什么要这样做 这是一个使用指令(请参阅),而不是使用语句,类似于使用System.Text 使用语句允许您自动清理东西,而无需使用try/catch/finally块: using (Sometype xyzzy = new SomeType()) { // Do whateve

我只是找到了下面的代码,不知道为什么要这样做。冲突风险

using DiffTreeNode = EPiServer.Enterprise.Diff.TreeNode;
然后在课堂上,它像往常一样被使用


你为什么要这样做

这是一个
使用
指令(请参阅),而不是
使用
语句,类似于
使用System.Text


使用
语句允许您自动清理东西,而无需使用
try/catch/finally
块:

using (Sometype xyzzy = new SomeType()) {
    // Do whatever with xyzzy
}
// xyzzy is gone, pining for the fjords.

using
指令导入名称空间,这样您就不必显式地使用名称空间来为其中的所有类型添加前缀。您的特定变体基本上为
EPiServer.Enterprise.Diff.TreeNode
名称空间创建了一个别名,因此您可以简单地将其称为
DiffTreeNode
。换句话说,在指令之后:

using DiffTreeNode = EPiServer.Enterprise.Diff.TreeNode;
以下两种说法是等效的:

EPiServer.Enterprise.Diff.TreeNode.SomeType xyzzy =
    new EPiServer.Enterprise.Diff.TreeNode.SomeType();
DiffTreeNode.SomeType xyzzy = new DiffTreeNode.SomeType();
我知道我更喜欢哪一种


现在您可能会问,如果指令允许您自己使用名称空间中的类型,为什么我们不这样做:

using EPiServer.Enterprise.Diff.TreeNode;
SomeType xyzzy = new SomeType();
我的打赌是,尽管我将等待Jon Skeet等人确认或否认这一点:-),它将涵盖两个或更多名称空间具有相同名称类型的情况。这将允许:

using Bt = Trees.BinaryTree;       // Has Tree type.
using Rbt = Trees.RedBlackTree;    // Annoyingly, also has Tree type.
Tree t = new Tree();               // Is this binary or redbalck?
Bt.Tree t1 = new Bt.Tree();        // Definite type.
Rbt.Tree t2 = new Rbt.Tree();      // Ditto.

看到这个了吗?是的,如果在两个名称空间中有一个树,我个人会使用它。