Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для TeachME
1 / 1 / 3
Регистрация: 10.12.2016
Сообщений: 48
.NET 4.x

Конструкторы экземпляров и классы

06.02.2018, 22:10. Показов 1642. Ответов 2

Студворк — интернет-сервис помощи студентам
Хочу спросить о синтаксисе C#, позволяющему инициализировать поля во время создания обьекта ссылочного типа.

В книге Рихтера сказано, что генерируя IL-код для этих методов-конструкторов, компилятор помещает в начало каждого из методов код, инициализирующий поля m_i и m_d. После кода инициализации вставляется вызов конструктора базового класса, а затем добавляеся код, расположенный внутри методов-конструкторов.

Вот и сам код, по которому я хочу задать вопросы:

C#
1
2
3
4
5
6
7
8
9
internal sealed class SomeType{
       private Int32 m_i=5;
       private Double m_d=10;
       public SomeType(){}
       public SomeType(Int32 x){
       m_i=x;
       m_d=3.14;
       }
}
И так, я хочу спросить как именно скомпилируеться код для конструктора с параметрами SomeType(Int32 x). Перед присвоением m_i = x; будет ли сначала присвоение m_i = 5, или нет? И правильно ли я понял, что m_d сначала будет присвоено значение 10, а в самом конце метода, после вызова конструктора базового класса, m_d будет присвоено значение 3.14.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2018, 22:10
Ответы с готовыми решениями:

классы , конструкторы
не могу разобратся с конструкторами. почему оно не работает? нужно ввести в програму которую я сделал на прошлой лабе конструкторы,...

Классы - поля, конструкторы, свойства
Должны присутствовать: - конструктор - методы задания (с контролем правильности) и чтения полей класса, класс список значений. Поля: Список...

Классы и объекты. Методы, конструкторы
1.В рамках консольного приложения создать класс MyClass с полями a и b и методом g, служащим для вычисления значения функции: a+b ...

2
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
07.02.2018, 08:10
Проверьте сами:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
       public SomeType(Int32 x){
       MessageBox.Show(String.Format("{0} {1}",m_i,m_d));  
       m_i=x;
       m_d=3.14;
       }
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.02.2018, 08:39
Лучший ответ Сообщение было отмечено TeachME как решение

Решение

Цитата Сообщение от TeachME Посмотреть сообщение
как именно скомпилируеться код для конструктора с параметрами SomeType(Int32 x)
Порядок инициализации объекта:
  1. Инициализаторы полей в порядке объявления1, начиная от текущего типа и вверх по цепочке наследования.
  2. Конструкторы базовых классов2, начиная от object и вниз по цепочке наследования до текущего.

1. В partial-классах порядок объявления полей не определен.
2. Цепочка вызовов определяется текущим конструктором: вызывает ли он явно конструктор базового класса и если да, то какой.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2018, 08:39
Помогаю со студенческими работами здесь

Классы. Конструкторы. Методы. Свойства. Операторы
День добрый, плохо разбираюсь в С#, по сути только начал, буду рад тем кто поможет в данной ситуации Необходимо: Класс|Названия...

Классы, файлы, их свойства. Конструкторы. Деструкторы. Перегрузки
Доброго времени суток! Дорогие форумчане посоветуйте ссылки чтобы я почитал и смог написать данную программу, если что-то вы знаете,...

Как создаются классы, их наследование, конструкторы с параметрами и без
обьясните пожалуйсто на примере с коментариями как создаются классы,их наследование. конструкторы с параметрами и без параметров. работу...

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

В классе данных определите переменные экземпляров.Значения переменных экземпляров должны быть введены с клавиатуры
В классе данных определите переменные экземпляров.Значения переменных экземпляров должны быть введены с клавиатуры. Как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru