Patrial классы и методы

public int MyProperty {get; set;}


Автоматически реализуемые свойства — это более локальная форма свойств.
При создании автоматических реализуемых свойств, компилятор создаст закрытое
анонимное поле, которое будет доступно с помощью методов get и set.
Инкапсуляция — это техника сокрытия частей объектно ориентированных программ,
систем, является первой парадигмой ООП.

Частичный класс — в C# реализована возможность разделения класса между исходными
файлами, все части объединяются при компиляции приложения. Так же его называют — раздельный класс. К его достоинствам можно отнести:

1. Возможна работа большого количества программистов над одним проектом.
2. Код может быть добавлен класс без пересоздания источника.
3. Удобно при работе с автосгенерированным кодом.

Класс:

public partial class User{

partial void Show(string str){

COnsole.WriteLine(str);
}
public void ShowName(string str){
Show(str);
}


Второй класс:

public partial class User{

partial void ShowUserName(string name){

}
}


Меню:

var user = new User();
user.ShowName();


Частичные методы:
Это методы, где прототип или сигнатура метода определена при создании частичного
класса, а реализация выполняется в любой другой части этого класса.
Частичные методы должны быть определены только в частичных классах.
Частичные методы всегда должны быть помечены ключевым словом partial.
Частичные методы всегда являются приватными, попытка явного использования
модификатора доступа с ними приведет к ошибке. Частичные методы должны возвращать
void. Частичные методы могут быть не реализованными, так же они могут не иметь
аргументов.

Read Only
Если поле использует модификатор ReadOnly, то присвоение значений таким полям будет происходит,
только при создании поля или в конструкторе того же класса.

readonly string name = "vlad";


ReadOnly — это модификатор, которые можно использовать только для полей.

Создание и сортировка массива patrial классами и методами

Создать массив, заполнить его и отсортировать пузырьковым методом.
Все это сделать с помощью patrial классов и методов.

Меню

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication6
{
     public partial class Logik
    {
        static void Main(string[] args)
        {
            var logik = new Logik();
            logik.DoGenerate();
            logik.DoShow();
            Console.ReadKey();
        }

    }
}


Класс 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication6
{
    public partial class Logik
    {
        partial void Generate();
        int[] mas = new int[15];
        //Генерация массива
        partial void Generate()
        {
            Random ran = new Random();
            for (int i = 0; i < 15; i++)
            {
                mas[i] = ran.Next(1, 100);
            }
            //Его сортировка
            int j = 0, x = 0;
            for (int i = 0; i < 15; i++)
            {
                for (j = 15 - 1; j > i; j--)
                {
                    if (mas[j - 1] > mas[j])
                    {
                        x = mas[j - 1];
                        mas[j - 1] = mas[j];
                        mas[j] = x;
                    }
                }
            }

            
        }
        public void DoGenerate()
        {
            Generate();
        }
    }
}


Класс 2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication6
{
    public partial class Logik
    {
        partial void Show();
        //Вывод массива
        partial void Show()
        {
            for (int i = 0; i < 15; i++)
            {
                Console.WriteLine(mas[i]);
            }
        }
        public void DoShow(){
            Show();
        }
    }
}