Правило
Для нового класса в C# должен создаваться отдельный .cs файл.
Объяснение
В практике это очень удобно.
Чем плохо размещать много C# классов в одном .cs файле?
По названию .cs файла трудно определить какие C# классы содержит файл.
Когда один .cs файл содержит один класс тогда, по названию файла такое же будет название C# класса.
А теперь как нам найти нужно класс если .cs файл содержит много C# классов:
• Вспоминаем по памяти нужный .cs файл
• Открываем нужный .cs файл и становимся в начале файла.
• Мы мышкой перемещаемся и увидели объявление класса с именем. Этот класс?
• Нет.
• Дальше мышкой перемещаемся и увидели объявление класса с именем. Этот класс?
• Нет.
• Дальше мышкой перемещаемся. Увидели объявление класса с именем. Этот класс?
• Да. Ура! Нашли.
Вывод получается когда в одном .cs файле много C# классов, то найти нужный класс:
• очень долго по времени
• утомительно физически нужно долго сколироваться мышкой.
Пример (для каждого класса в C# создаем свой .cs файл)
Шаг 1. Создадим новое приложение
Создаем новое C# консольное приложение...
Шаг 2. Создадим новый .cs файл
Нажимаем правой клавишей мыши на проекте →
Add →
New Item
Пишем название файла Book.cs
Создался новый файл Book.cs и внутри класс Book.
Шаг 3. Напишем функциональность для класса Book
C#
Файл Book.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Book
{
public int Price;
public string Name;
}
}
Шаг 4. Используем класс Book в главном классе
C#
В файле Program.cs напишем код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// создаем объект класса Book
Book book1 = new Book();
// заполняем
book1.Name = "Властелин Колец";
book1.Price = 200;
// создаем объект класса Book
Book book2 = new Book();
// заполняем
book2.Name = "Три мушкетера";
book2.Price = 300;
}
}
}
Запустим программу, ошибок нет.
Вопрос к Вам! Есть ли у Вас в проекте вложенные папки?
Какие названия вы даете для namespace, когда объявляете новый C# класс?