Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Все типы - производные от Sytem.Object
- У них есть публичные методы
- * ToString
- * Equals(object obj)
- * GetHashCode()
- * GetType()
- и protected методы
- * MemberwiseClone
- * Finalize
- MemberwiseClone создает новый объект, в который копирует свойства исходного, для ссылочных типов происходит копирование указателя(ссылка не отвязывается)
- Finalize - вызывается сборщиком мусора при утилизации объекта(недетерминированно)
- Оператор new последовательно делает несколько вещей:
- * Анализирует сколько понадобится памяти для этого объекта, выделяет память
- * Анализирует сколько дополнительно понадобится памяти для этого объекта, выделяет эту память в виде байт, проинициализированных 0
- * Создает указатель на объект и индекс блока синхронизации(вроде нужно CLR, для управления объектом)
- * Вызывает конструктор
- # Приведение типов.
- Можно привести к собственному типу или наследникам
- ```csharp
- public class A
- {
- }
- public class B : A
- {
- }
- ...
- B b = new B();
- object o = b;
- A a = (A) o;
- ```
- Приведение происходит динамически,т.е вполне возможно, что будет ошибка Run-Time
- # Пространства имен и сборки
- Пространства имен используются для того, чтобы программисту было проще писать код, не весь путь к расположению класса, а открыть namespace
- тем самым компилятор сам подставит правильный путь, потому что в итоге CLR работает с полными именами типов, также using позволяет
- использовать псевдонимы:
- ```csharp
- using WintellectWidget = Wintellect.Widget;
- ...
- var ww = new WintellectWidget();
- ```
- Это может быть полезно, если я не хочу захламлять глобальное пространство имен лишними типами и мне нужен только один
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement