Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save eterekhin/3c10495b5d3a25c999d3f089f27134d8 to your computer and use it in GitHub Desktop.
Save eterekhin/3c10495b5d3a25c999d3f089f27134d8 to your computer and use it in GitHub Desktop.
Основы типов

Все типы - производные от Sytem.Object У них есть публичные методы

  • ToString
  • Equals(object obj)
  • GetHashCode()
  • GetType() и protected методы
  • MemberwiseClone
  • Finalize

MemberwiseClone создает новый объект, в который копирует свойства исходного, для ссылочных типов происходит копирование указателя(ссылка не отвязывается) Finalize - вызывается сборщиком мусора при утилизации объекта(недетерминированно) Оператор new последовательно делает несколько вещей:

  • Анализирует сколько понадобится памяти для этого объекта, выделяет память
  • Анализирует сколько дополнительно понадобится памяти для этого объекта, выделяет эту память в виде байт, проинициализированных 0
  • Создает указатель на объект и индекс блока синхронизации(вроде нужно CLR, для управления объектом)
  • Вызывает конструктор

Приведение типов.

Можно привести к собственному типу или наследникам

 public class A
        {
        }

        public class B : A
        {
        }

...
            B b = new B();
            object o = b;
            A a = (A) o;

Приведение происходит динамически,т.е вполне возможно, что будет ошибка Run-Time

Пространства имен и сборки

Пространства имен используются для того, чтобы программисту было проще писать код, не весь путь к расположению класса, а открыть namespace тем самым компилятор сам подставит правильный путь, потому что в итоге CLR работает с полными именами типов, также using позволяет использовать псевдонимы:

using WintellectWidget = Wintellect.Widget;
...
var ww = new WintellectWidget();

Это может быть полезно, если я не хочу захламлять глобальное пространство имен лишними типами и мне нужен только один

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment