Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Alvin Seville
332 / 265 / 131
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
1

Почему System.Activator.CreateInstance<T>() позволяет создавать объект в любом случае?

11.10.2018, 10:45. Просмотров 1085. Ответов 3
Метки нет (Все метки)


Почему System.Activator.CreateInstance<T>() позволяет создавать объект класс в любом случае? Точнее, даже в том, если в типе нет конструктора без параметров (а он, как известно, определяется лишь в том случае, если нет ни одного явно описанного конструктора в классе)?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2018, 10:45
Ответы с готовыми решениями:

Ошибка Activator.CreateInstance
Добрый день! Пытаюсь создать экземпляр объект типа переданного параметром и еще при компиляции...

Аналог Activator.Createinstance
Здравствуйте, появилась необходимость получить соединение с определенным сервером приложений через...

Метод Activator.CreateInstance
Привет, моя архитектура приложения построена на MVVM потерне с плагинной системой и динамическими...

Exception при получение COM-объекта через Activator.CreateInstance(). Как "отладить"?
Доброго всем дня. Возникла проблема с получением COM-объекта через Activator.CreateInstance(T)....

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
3
294 / 123 / 106
Регистрация: 30.10.2015
Сообщений: 690
11.10.2018, 10:55 2
Наверно, по той же причине, почему мы можем с помощью рефлексии вызвать приватный метод у класса.
0
Эксперт .NET
14852 / 11239 / 2949
Регистрация: 17.09.2011
Сообщений: 18,826
11.10.2018, 11:15 3
Лучший ответ Сообщение было отмечено Соколиный глаз как решение

Решение

Цитата Сообщение от Соколиный глаз Посмотреть сообщение
Почему System.Activator.CreateInstance<T>() позволяет создавать объект класс в любом случае? Точнее, даже в том, если в типе нет конструктора без параметров
А? Я что-то пропустил?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
 
class Program
{
    static void Main()
    {
        var foo = Activator.CreateInstance<Foo>();  // MissingMethodException
    }
}
 
class Foo
{
    public Foo(int x)
    {
 
    }
}
1
Неадекват
1436 / 1189 / 230
Регистрация: 02.04.2010
Сообщений: 2,719
11.10.2018, 11:23 4
Цитата Сообщение от kolorotur Посмотреть сообщение
А? Я что-то пропустил?
Могу предположить, что CreateInstance вызывается в асинхронном коде и исключение улетает в другой поток.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2018, 11:23

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту?
Это можно : Array a(10); a.set(0,5); Array b(a); А это нельзя : Array a(10); Array b(20);...

Функция срабатывающая в любом случае
Доброе время суток! У меня есть xxx.dll, которая состоит из нескольких классов. Эта xxx.dll...

Консоль закрывается в любом случае
while True: print(&quot;&quot;&quot;Введите номер нужной Вам формулы 1) Формула Герона 2) Формула Пифагора 3)...

QFileDialog::DontUseNativeDialog не позволяет создавать папки внутри окна
Доброго времени суток! Если вызывать диалоговое окно вида QFileDialog dlg; // Окно выбора файла...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.