Что касается комментариев Скитса к моему примеру выше, что он будет использовать класс вместо структуры и, возможно, прояснит, где использовать класс и где использовать структуру, я тоже публикую это. Я думаю, что есть и другие, кому это тоже интересно.
Основная причина использования класса, как я мог видеть, заключается в том, что вы можете сделать его неизменным, но это возможно и со структурами?
например:
struct user
{
public user(string Username, string LastName)
{
_username = Username;
}
private string _username;
public string UserName {
get { return _username; }
}
}
Я давно чувствовал, что больше не знаю различий между классами и структурами, когда мы можем иметь свойства, инициализаторы, поля и точно все, что класс имеет в структуре. Я знаю, что классы являются ссылочными типами, а структуры являются типами значений, но какая разница в приведенном выше случае при использовании его в качестве параметра в функции?
Я нашел это описание различий на сайте http://www.startvbdotnet.com/oop/structure.aspx, и это описание именно так, как я отобразил его в своей голове:
Структуры могут быть определены как инструмент
для обработки группы логически
связанные элементы данных. Они есть
определяется пользователем и предоставляет метод для
упаковка данных разных
типы. Структуры очень похожи на
Классы. Как и классы, они тоже могут
содержат элементы, такие как поля и
методы. Основное различие между
классы и структуры есть, классы
ссылочные типы и структуры
типы значений. В практическом плане
структуры используются для меньших
легкие предметы, которые не
сохраняются в течение длительного времени и используются классы
для больших объектов, которые ожидаются
существовать в памяти в течение долгих периодов.
Может быть, это должен быть собственный вопрос, но я чувствовал, что это было связано, когда у всех нас были разные взгляды на структуру и класс-вещь как параметр.