Совместное использование псевдонима типа среди разных файлов в одном пространстве имен - PullRequest
0 голосов
/ 29 мая 2020

Я определил псевдоним типа и могу использовать его в своем классе, который я объявил в этом файле.

using TemplateStructure = System.Collections.Generic.List<System.Collections.Generic.List<DataManagement.TemplateImageLocation>>;

namespace Gui.ViewModels
{
    public class AddRemoveCellsViewModel : TemplateWorkflowStepViewModel
    {
        public TemplateViewModel TemplateVM
        {
            get;
        }

        public AddRemoveCellsViewModel(TemplateStructure locations) : base(locations)
        {
            base.DisplayName = "Add and Remove Rows/Columns";
            TemplateVM = new TemplateViewModel();
        }
    }
}

Но другой класс в другом файле в том же пространстве имен не работает. не работает.

namespace Gui.ViewModels
{
    public class ActivateDeactivateCellsViewModel : TemplateWorkflowStepViewModel
    {
        // FAILS
        public ActivateDeactivateCellsViewModel(TemplateStructure locations) : base(locations)
        {
            base.DisplayName = "Click to deactivate image locations";
        }
    }
}

И, конечно же, использование должно быть размещено за пределами объявления пространства имен.

Можно ли использовать этот псевдоним типа в нескольких файлах?

1 Ответ

2 голосов
/ 29 мая 2020

Вы должны написать

using TemplateStructure = System.Collections.Generic.List<System.Collections.Generic.List<DataManagement.TemplateImageLocation>>;

в каждом файле, где вы хотите использовать этот псевдоним, потому что

A using_alias_directive вводит идентификатор, который служит в качестве псевдонима для пространства имен или типа внутри непосредственно включающей единицы компиляции или тела пространства имен .

(от C# Спецификация языка - Использование директив псевдонимов )

Использование псевдонимов не работает с единицами компиляции , а именно:

Программа C# состоит из одной или нескольких единиц компиляции, каждая содержится в отдельном исходном файле.

(от C# Спецификация языка - Единицы компиляции )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...