2016-01-08 3 views
0

У меня есть очень простой вопрос. В проекте Visual Studio я обнаружил два неполных класса с именем Startup. Классы находятся в разных файлах.Разделить частичные классы на отдельные файлы

enter image description here

Если я нажимаю на первом методе (ConfigureAuth), он появляется в файле класса "Startup.Auth.cs". Второй файл появляется в файле класса «Startup.cs». Как я могу организовать подобные классы?

ответ

1

Вы можете использовать частичные классы в C# для разделения большого класса на несколько файлов. Рефакторинг большого класса часто бывает лучше, но есть некоторые законные причины иметь большие классы.

Другое использование частичных классов - разрешить изменение класса, сгенерированного кодом. Сгенерированная кодом часть класса переходит в один файл, а ручные изменения хранятся в отдельном файле. В вашем случае есть один класс Startup, который построен из отдельных исходных файлов, обрабатывающих отдельные части запуска. Некоторые из этих файлов могут быть добавлены пакетами NuGet, а использование частичного класса значительно упрощает использование различных функций в вашем приложении.

Это довольно просто, чтобы разделить класс на несколько исходных файлов с помощью partial:

Предположим, у вас есть класс, реализованный в исходном файле MyClass.cs:

class MyClass { 

    public void MethodA() { ... } 

    public void MethodB() { ... } 

} 

Вы можете разделить его на два источника файлы. MyClass.A.cs:

partial class MyClass { 

    public void MethodA() { ... } 

} 

И MyClass.B.cs:

partial class MyClass { 

    public void MethodB() { ... } 

} 

Так, помечая класс как partial Вам разрешают распространять содержимое класса в нескольких случаях из class конструкций. Компилятор объединит их все в одно определение class во время компиляции.

Вы можете изучить the details about partial classes на MSDN.

+0

Привет, Мартин, у меня есть исходный файл Startup.Auth.cs с частичным классом Startup и метод ConfigureAuth. Что мне теперь делать? Добавить еще один класс с именем Startup? – AGuyCalledGerald

+0

@AGuyCalledGerald: _Что мне теперь делать? _ Я не знаю. В чем дело. Что ты пытаешься сделать? –

+0

Если я следую вашим инструкциям, я получаю два файла класса Startup.Auth.cs и Startup.cs с тем же содержимым (Startup). Но я хотел бы, чтобы они были «объединены», как показано на картинке. – AGuyCalledGerald

Смежные вопросы