Ответы с форумов MSDN

C# - Вынесение кода в отдельный файл

Date: 21.02.2021 17:59:38

Можно, и нужно. Но содержимое файла в C# должно быть законченным объявлением типа. Вынести только реализацию метода в отдельный файл нельзя, хотя с использованием partial можно разделить на несколько файлов и объявление типа. 

Message 66

Date: 22.02.2021 6:49:51

>Есть класс "MyClass2" он тоже в отдельном файле, в него мне нужно передать свойства, события, переменные и тд из класса "MyClass1".

Для этого ничего особенного делать не нужно. Любой тип в проекте C# видит любой другой тип. Необходимости включать один файл в другой нет именно по этой причине. Возможно, вы допустили тривиальную ошибку из-за которой типы или свойства не видятся, например классы объявлены в разных пространствах имен, забыли сделать какие-то свойства публичными или статическими (нестатическое свойство будет видно только на экземпляре), или какой-то файл у вас не добавлен в проект и поэтому вовсе не подается на вход компилятора (при использовании старого формата проекта, в котором требуется добавлять файлы явно). 

>Моя реализация...

Это вполне нормальная реализация. Необходимость выносить отдельные методы в файлы возникает редко, но когда она возникает, это делается именно так, через partial. Например, так же это сделано в библиотеке MoreLINQ, большой класс MoreEnumerable разбит на несколько файлов с частичными объявлениями, которые названы по имени метода (https://github.com/morelinq/MoreLINQ/blob/master/MoreLinq/Acquire.cs).


Message 65

Date: 22.02.2021 17:25:40

MVVM - это методология проектирования для достаточно сложных приложений, к тому же заточенная под специальные требования, вроде "можно покрывать тестами отдельно логику UI". Если вы только начинаете изучать C# и разработку графических приложений, естественно она вам ничего не облегчит. Начните с основ, как выделять повторяющийся код в методы, как объединять в методы в классы, как составлять иерархии классов, представляющие модель предметной области. Проектирование UI логичным образом вытекает из этого. 

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

Я не знаю, что такое "пассивные" и "активные" элементы. В UserControl нужно выделять то, что повторяется. Например, если в нескольких местах используется однотипная связка полей для ввода фамилии, имени, и отчества, логично вынести это в отдельный FioControl, или что-то в этом роде. Выделять все подряд в UserControl особого смысла нет. Даже если форма выглядит слишком большой, этот размер карман не тянет. В конце концов, навигация по коду в Visual Studio отлично работает, позволяя найти что угодно и в большом файле.



Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub