|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
LRСон Веры Павловны, наверное это был какой-нить MyTrick.Math (а не System.Math)? В том-то и дело, что самый что ни на есть System.Math: Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2017, 06:28 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныВ том-то и дело, что самый что ни на есть System.Math Охренеть... это ж сколько пива можно наспорить))) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2017, 09:16 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
LRОхренеть... это ж сколько пива можно наспорить))) Вообще-т до версии 2.0 в C# не было статических классов. Так что ничего удивительного, это просто атрибуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2017, 09:31 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
hVosttТак что ничего удивительного, это просто атрибуты Какие же атрибуты? Статические классы на уровне IL объявляются одновременно как abstract и sealed. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2017, 10:36 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныКакие же атрибуты? Статические классы на уровне IL объявляются одновременно как abstract и sealed. про них и говорю :) насколько я понял, так сделано для языков, которые не поддерживают статические классы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2017, 13:16 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2017, 13:20 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
Вот повернемся к нашим конструкторам. Вопрос возник из комбинации создание таких обьектов. Класа А, В и 1) A a= new B(); 2) B b=new A(); В первом варианте у меня результат что и в B b=new B(); То есть динамический полиморфизм - все одинаково и для статических класов. Во втором случае возникает ошибка компиляции. Однако если сделать приведение базового обьекта А к потомку В - создается обьект класа A?? new B= (B) new A(); Интересный результат - кастим к В, получаем А. Вообще на практике не предполагал возможности такого приведения, в базовом класе ведь нету всех полей и свойств производного класа - или это лиш механизм обхода ошибки компиляции, и приведением типа это не называется. Не могу вот сейчас проверить что будет если: А а=new A(); B b= (B)a; ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 12:01 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
stutНе могу вот сейчас проверить что будет если: А а=new A(); B b= (B)a; Ну так проверь сначала, потом фантазируй. Откомпилируется, т.к. проверка идет во время выполнения. Получишь исключение System.InvalidCastException ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 12:18 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 12:37 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
То и дело понятно, что пример откомплируется - только непонятно почему эксепшн если при создание обьекта - В b = (В) nеw А ошибок нету; Здесь что происходит? Какой то алогизм - кастим к В, получаем А. Говоря о is, аs - есть еще typеof, и linq имеет свой oftypе() - вот действительно такое многообразие вносит путаницу. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 13:18 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
stutнепонятно почему эксепшн если при создание обьекта - В b = (В) nеw А ошибок нету; Здесь что происходит? Тут тоже будет System.InvalidCastException ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 13:21 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
stutГоворя о is, аs - есть еще typеof, и linq имеет свой oftypе() - вот действительно такое многообразие вносит путаницу. Путаницу вносит исключительно путаница в голове. Всё вышеперечисленное - четыре абсолютно разных вещи. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 14:12 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
Ну как будет эксепшн приведения типа если я проверял/ запускал такой код. Может я мало проверял, как меня здесь закинули что я не проверял вообще, но результат удивил меня самого. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 14:23 |
|
Порядок инициализации конструкторов в c#
|
|||
---|---|---|---|
#18+
stutНу как будет эксепшн приведения типа если я проверял/ запускал такой код. Может я мало проверял, как меня здесь закинули что я не проверял вообще, но результат удивил меня самого. Покажи код. У меня исключение Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2017, 14:36 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1399736]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 471ms |
0 / 0 |