Я правильно понимаю, что это что то вроде неявного наследования, допустим возьмем С#, в нем все классы неявно наследуются от класса Object, а тип int является классом Int16, Int32, Int64
, то есть допустим при объявлении переменной int x;
, мы создаем некий класс "х" который неявно наследует структуру класса Int, его методы, свойства и пр., а при инициализации создается сам объект, или например Person p = new Person();
в левой части мы объявляем свою переменную-класс "р" которая явно наследует от класса Person, а в правой вызываем конструктор и создаем непосредственно сам объект. Поправьте меня если не правильно понял.
Вы думаете не вполне правильно.
В языках наподобие Java или C# у вас есть типы-значения (в Java это примитивные типы, в C# структуры) и ссылочные типы (классы).
Так вот, объявление
int x;
просто резервирует место в памяти, где может храниться экземпляр int
(то есть, 4 байта). При этом имя x
ссылается на это место.
А вот код x = 1
записывает на это самое зарезервированное место значение 1.
Для ссылочных типов это работает немного по-другому. Объявление
Person p;
резервирует место не под сам объект, а под ссылку на объект (если вы знакомы с C, это что-то наподобие указателя). А код
p = new Person();
создаёт этот объект, и в зарезервированное место записывает ссылку на созданный объект.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Консольное приложение Net Core использует библиотеку классов Net Standart?
Сейчас, когда я запускаю новый процесс из своего C# приложения, я делаю это таким образом :