Как я могу удалить или создать классы во время выполнения C#?
Я сделал программу, которая обеспечивает представление знаний, это хорошо, но я думаю, что было бы лучше, если бы я мог создавать и уничтожать классы на лету.
4 ответа
Если вы говорите о динамической генерации кода, вот ссылка:
Для меня это звучит так, будто вы хотите научиться программированию ИИ и представлению знаний. Однако это сильно отличается от создания классов во время выполнения. Википедия дает довольно хорошее введение в тему, но не содержит никакого кода.
Из вашего описания звучит так, будто вы не хотите создавать классы 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 для загрузки классов.