Сделать псевдоним enum в базовом классе - PullRequest
0 голосов
/ 26 мая 2019

Допустим, у меня есть enum:

MyNameSpace.MyLongEnumName { Green, Red }

Как я могу создать сокращение этого enum в базовом (то есть a) классе, чтобы я мог легко использовать его в производном (например, * 1005)*) класс?

т. е. first.cs:

namespace Foo
{
    public class a
    {
        // phseudo-code,like:  
        using xx = MyNameSpace.MyLongEnumName;
    }  
}

second.cs:

namespace Foo
{
    public class b : a
    {
        // phseudo-code,like: 
        xx myProperty = xx.Green;
    }  
}

ps Главное здесь: избегать using ... в верхней части.cs файлов производных классов.

1 Ответ

0 голосов
/ 26 мая 2019

Я не совсем уверен, чего вы хотите достичь.

Например,

namespace MyCompany.MyProduct.MyServices.MyColorService.Enums
{
    public enum Color
    {
        Green,
        Red
    }
}

Теперь мы хотим использовать его:

using MyCompany.MyProduct.MyServices.MyColorService.Enums;

public class Foo
{
    public void Bar()
    {
        var currentColor = Color.Green;
    }
}

Сравните это с:

public class Foo
{
    public void Bar()
    {
        var currentXx = xx.Green;
    }
}
  • В первом примере я сразу вижу, что это цвет.Зеленая.Также я сразу вижу, что это наш собственный цвет, а не тот, что System.Drawing.
  • Во втором примере, я только знаю, это какой-то green из xx?Это зеленый солдат?Это благоприятно для окружающей среды?

Что бы вы ни пытались сделать, это ухудшает ситуацию.

Главное здесь - избегать using xx = MyNameSpace.MyLongEnumName; в верхней части.cs файлы производных классов.

Не так работают пространства имен.Есть пространства имен, чтобы убедиться, что у вас нет конфликта имен с другими библиотеками.Они здесь, чтобы гарантировать, что вы работаете на типе, который вы действительно хотите.Вот почему ваш производный класс также имеет собственное пространство имен.

Или другими словами: То, чего вы хотите достичь, невозможно .Даже когда это будет возможно, это, вероятно, ухудшит ситуацию!

Tldr: Убедитесь, что вы организовали свой Кодекс.Создайте баланс между слишком многословными и слишком простыми именами.


Помимо этого, напишите Color, установите курсор над ним и нажмите ctrl + . , затем введите .Вы заметите, Visual Studio автоматически импортирует для вас пространство имен, или предложит список, если имя неоднозначно. Также у нас есть такие инструменты, как Resharper , которые импортируют пространство имен при использовании intellisense;)

...