Этот вопрос должен занимать мысли каждого разработчика при написании кода, потому что это важно. Хотя классы и структуры во многом похожи, детали имеют значение. Есть одна деталь, которая, возможно, является самым важным различием. Это то, что классы являются ссылочными типами, а структуры - типами значений. Что именно это означает? Классы (classes) Классы являются ссылочными типами, что означает, что когда передается объект класса, то передаваемое является ссылкой на исходное место в памяти для этого объекта...
При написании чистого кода нужно быть осторожным с объектами, классами или конструкторами, которые мы объявляем. Мы не хотим предоставлять данные, которые не должны быть видны снаружи, и хотим определять структуры данных так, чтобы их легко можно было повторно использовать...