Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
8 / 8 / 2
Регистрация: 10.12.2013
Сообщений: 148

Как происходит присвоение переменной абстрактного класса?

21.06.2014, 20:53. Показов 2187. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В базовых классах существует множество абстрактных классов, переменным которым можно присвоить значение.
Например:
C#
1
2
Type t1 = Type.GetType("System.Int32");
Assembly asm = Assembly.Load("MyLibrary");
Получается, что через статический метод переменной присваивается ссылка на объект абстрактного класса (который создается или загружается в память)? Как это реализуется если экземляры абстрактного класса создавать нельзя через ключевое слово new.
Или какие есть идеи как реализовать следующий пока что псевдокод?

C#
1
2
3
4
5
6
7
    abstract class MyClass
    {
        static MyClass SomeDo()
        {
            return "MyClass";
        }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.06.2014, 20:53
Ответы с готовыми решениями:

Присвоение переменной из статического класса значения из формы
здравствуйте, у меня есть static class Data, в котором имеется: public static int N; public static float inputSnakeRow = new float; ...

Присвоить переменной тип абстрактного класса для последующего создания
Суть проблемы в классе House. Мы в цикле каждый раз делаем проверку какой класс создавать Dog или Cat. Я бы хотел проводить проверку 1...

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

1
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
21.06.2014, 21:48
Экземпляров абстрактных классов не существует.
Подобная иллюзия создаётся благодаря скрытой работе с наследниками. Вот внутренности Assembly:
C#
1
2
3
4
5
6
7
8
    public static Assembly Load(byte[] rawAssembly)
    {
      AppDomain.CheckLoadByteArraySupported();
      StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
      return (Assembly) RuntimeAssembly.nLoadImage(rawAssembly,
            (byte[]) null, (Evidence) null, ref stackMark, 
            false, SecurityContextSource.CurrentAssembly);
    }
А тип RuntimeAssembly наследуется от Assembly, но при этом определён как внутренний
C#
1
internal class RuntimeAssembly : Assembly, ICustomQueryInterface
На деле, метод Load возвращает экземпляр класса RuntimeAssembly, но приведение типов выдаёт его за Assembly.
В подтверждение моих слов:
C#
1
2
3
Assembly asm = Assembly.LoadFrom(
    @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.dll");
Console.WriteLine(asm.GetType());  // System.Reflection.RuntimeAssembly
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.06.2014, 21:48
Помогаю со студенческими работами здесь

Присвоение значения переменной класса через конструктор
#include <iostream> using namespace std; class Help { int userID; public: Help(int id) {int userID = id;} ~Help()...

Присвоение переменной значения элемента массива из другого класса
Здравствуйте. В классе Player имеется массив public static int stats = { 40, 100, 15 }; Как присвоить переменной int в другом классе...

Как обратится к обьекту класса, являющегося наследником абстрактного класса
Здравствуйте! У меня есть 4 класса: один виртуальный, следующие 2 - наследуют виртуальный класс и последний класс содержит указатель на...

Как обратиться из конструктора базового абстрактного класса к свойству-массиву класса наследника
Добрый день. Подскажите как обратиться из конструктора базового абстрактного класса к свойству-массиву из класса наследника. Вроде бы...

Как обратиться к конструктору абстрактного класса
В Java это можно сделать таким образом: public abstract class AbClass { AbClass(int a) { } } public class One extends...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
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, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru