ExpertiDict

C# · Intermediário · Inglês · Técnico

dynamic

/daɪˈnæmɪk/palavra-chave

Tipo cuja verificação de membros é adiada para a execução, via DLR. O compilador aceita qualquer chamada, e erros de membro inexistente só aparecem em runtime.

Onde usar

Aparece em interop com COM, ao lidar com JSON de formato desconhecido ou com ExpandoObject. Perde IntelliSense e checagem do compilador, então o uso deve ficar restrito a bordas bem delimitadas.

Em código

dynamic d = 5;
d += 10;
Console.WriteLine(d);        // 15
d = "texto";
Console.WriteLine(d.Length); // 5
// d.Inexistente() só falha em runtime

Exemplos

Avoid dynamic, it moves errors to runtime.

Evite dynamic, ele joga os erros para o runtime.

We use dynamic only for the COM interop.

Usamos dynamic só no interop com COM.

Cuidado

Não use como substituto de var: var é fortemente tipado e deduzido na compilação, enquanto dynamic só descobre o tipo ao rodar.

Antônimos

var

Veja também

Todos os termos de C#