Могу ли я создать псевдоним в C # или VB.NET в рамках метода? - PullRequest
2 голосов
/ 11 мая 2010

Есть ли эквивалент оператора псевдонима, например:

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

или

' VB.NET '
Imports C = System.Console

... но в рамках метода - вместо применения ко всему файлу?

Ответы [ 3 ]

3 голосов
/ 11 мая 2010

Хотя это может быть излишним, вы можете создать частичный класс и поместить только функции, к которым вы хотите применить псевдоним, в свой собственный файл с псевдонимом.

В файле основного класса:

/*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");
        }
    }
}
2 голосов
/ 11 мая 2010

Использование ссылки на объект было бы логичным способом. Вы устанавливаете немного препятствий, используя статический класс. Работал примерно так:

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

Или VB.NET с утверждением:

    With Console.Out
        .WriteLine("hello")
        .WriteLine("world")
    End With
0 голосов
/ 11 мая 2010

См. здесь и здесь для получения более подробной информации.

Пример:

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{}
        }
    }
}
...