Как я могу удалить или создать классы во время выполнения C#?

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

4 ответа

Решение

Если вы говорите о динамической генерации кода, вот ссылка:

динамический код в C# динамический код в скрипте

Для меня это звучит так, будто вы хотите научиться программированию ИИ и представлению знаний. Однако это сильно отличается от создания классов во время выполнения. Википедия дает довольно хорошее введение в тему, но не содержит никакого кода.

http://en.wikipedia.org/wiki/Artificial_intelligence

Из вашего описания звучит так, будто вы не хотите создавать классы C# во время выполнения. То, что вы хотите, это своего рода представление знаний.

На это нет простого ответа. Это область исследований искусственного интеллекта. См. http://en.wikipedia.org/wiki/Knowledge_representation_and_reasoning для ознакомления.

В C# 3.0 можно создавать анонимные типы, хотя, как указывает STW, это определяется не во время выполнения, а во время компиляции.

var myClass = new { A = 5, Id = "MyClass", num = 0.187f};

Console.WriteLine(myClass.Id);

Если вы хотите на самом деле создать новый тип класса на лету, обходным путем является создание файлов классов C#, их компиляция в сборку и использование Reflection для загрузки классов.

Другие вопросы по тегам