Avatar ·

Como criar uma instância de um objeto pelo seu tipo (Type) em C#?

Olá a todos! Sou novo em C# e me deparei com um problema. Tenho uma variável do tipo `Type`, por exemplo, obtida através de `typeof(MyClass)` ou de uma string com o nome da classe. Preciso criar dinamicamente um objeto desse tipo, mas não sei como fazer. Aqui está um exemplo que não funciona: ```csharp Type myType = typeof(StringBuilder); var instance = new myType(); // Erro: "myType" é uma variável, não um tipo ``` Entendo que em C# não se pode usar `new` com uma variável do tipo `Type`. Pesquisei no Google, encontrei menções sobre `Activator.CreateInstance`, mas não entendi completamente. Como criar um objeto corretamente se tenho apenas o `Type`? É importante que a solução funcione tanto para classes sem parâmetros no construtor quanto para classes com parâmetros. Desde já, obrigado! <<>>

Usando Activator.CreateInstance

Para criar um objeto por tipo em C#, usa-se a classe Activator do namespace System. Esta é a forma mais simples e comum. Veja como: