Что такое типизация, присвоение типа?

302
19 июня 2017, 18:47

Я правильно понимаю, что это что то вроде неявного наследования, допустим возьмем С#, в нем все классы неявно наследуются от класса Object, а тип int является классом Int16, Int32, Int64, то есть допустим при объявлении переменной int x;, мы создаем некий класс "х" который неявно наследует структуру класса Int, его методы, свойства и пр., а при инициализации создается сам объект, или например Person p = new Person();в левой части мы объявляем свою переменную-класс "р" которая явно наследует от класса Person, а в правой вызываем конструктор и создаем непосредственно сам объект. Поправьте меня если не правильно понял.

Answer 1

Вы думаете не вполне правильно.

В языках наподобие Java или C# у вас есть типы-значения (в Java это примитивные типы, в C# структуры) и ссылочные типы (классы).

Так вот, объявление

int x;

просто резервирует место в памяти, где может храниться экземпляр int (то есть, 4 байта). При этом имя x ссылается на это место.

А вот код x = 1 записывает на это самое зарезервированное место значение 1.

Для ссылочных типов это работает немного по-другому. Объявление

Person p;

резервирует место не под сам объект, а под ссылку на объект (если вы знакомы с C, это что-то наподобие указателя). А код

p = new Person();

создаёт этот объект, и в зарезервированное место записывает ссылку на созданный объект.

READ ALSO
Запись данных в таблицу Oracle

Запись данных в таблицу Oracle

ЗдравствуйтеЗаписываю xml-файл в таблицу Oracle

295
Консольное приложение Net Core использует библиотеку классов Net Standart?

Консольное приложение Net Core использует библиотеку классов Net Standart?

Консольное приложение Net Core использует библиотеку классов Net Standart?

244
Ипользование таймер в коде c#

Ипользование таймер в коде c#

ЗдравствуйтеВобщем у меня есть база данных Oracle

390
Скрыть окно процесса вызванного кодом C#

Скрыть окно процесса вызванного кодом C#

Сейчас, когда я запускаю новый процесс из своего C# приложения, я делаю это таким образом :

264