我可以在方法范围内的C#或VB.NET中创建别名吗?

时间:2010-05-11 14:27:20

标签: c# .net vb.net scope alias

是否有任何等效的别名声明,例如:

// C#:
using C = System.Console;

或:

' VB.NET '
Imports C = System.Console

...但在方法范围内 - 而不是应用于整个文件?

3 个答案:

答案 0 :(得分:3)

虽然这可能有些过分,但您可以创建一个分部类,并且只将您想要别名的函数放在他们自己的别名文件中。

在主类文件中:

/*Existing using statements*/   

namespace YourNamespace
{
    partial class Foo
    {

    }
}

在另一个档案中:

/*Existing using statements*/   
using C = System.Console;

namespace YourNamespace
{
    partial class Foo
    {
        void Bar()
        {
            C.WriteLine("baz");
        }
    }
}

答案 1 :(得分:2)

使用对象引用将是合乎逻辑的方式。通过使用静态类,你会遇到一些障碍。像这样工作:

   var c = Console.Out;
   c.WriteLine("hello");
   c.WriteLine("world");

或VB.NET With声明:

    With Console.Out
        .WriteLine("hello")
        .WriteLine("world")
    End With

答案 2 :(得分:0)

有关详细信息,请参阅herehere

示例:

namespace PC
{
    // Define an alias for the nested namespace.
    using Project = PC.MyCompany.Project;
    class A 
    {
        void M()
        {
            // Use the alias
            Project.MyClass mc = new Project.MyClass();
        }
    }
    namespace MyCompany
    {
        namespace Project
        {
            public class MyClass{}
        }
    }
}