Класс данных Котлина == Структура C #?

Я использовал C # раньше и там мы можем определить struct которая будет типом значения. Я изучаю Kotlin сейчас, и насколько я знаю, класс data-class kotlin сравнивается по значению, может копировать по значению и т. Д. Нашел несколько дискуссий в Интернете об этом, но это было нелегко, и я хотел бы, чтобы кто-то квалифицированный в C # и Kotlin очистите это: могу ли я интерпретировать data class Kotlin как структуру C # и назвать его днем? Если нет, каковы различия?

Основное различие между классами данных Kotlin и структурами C # заключается в том, что классы данных Kotlin все еще являются классами , они передаются по ссылке (ссылочный тип, говорящий в терминах C #) и сохраняются в одной и той же куче с другими объектами (не принимая возможные JVM оптимизация во внимание) вместо стека, в том же виде, что и другие объекты.

Реализации экземпляров копирования и проверки соответствия для классов данных просто сгенерированы в методы класса и называются методами экземпляра в естественном режиме JVM.

Некоторые ограничения, которые классы данных имеют вместе с структурами, вызваны другой причиной: например, классы данных являются окончательными из-за нечеткой семантики автоматически сгенерированных функций, которые будут поступать из наследования класса данных.