Pergunta

variáveis ??dinâmicas pode em C # 4.0 ser membros de uma classe ou passado para ou retornados de métodos? var a partir de C # 3.0 não poderia, mas eu não vi qualquer lugar menção de saber se é possível ou não com dinâmica.

Foi útil?

Solução

Todas as alternativas acima. Eu tentei-los no VPC e foi capaz de fazer tudo isso. Veja a 'novos recursos do C #' documento aqui

Outras dicas

Sim. Há uma grande diferença entre var e dynamic.

var apenas significa "deixar o compilador inferir o tipo real da variável".

dynamic é o tipo da variável - para qualquer lugar que você pode especificar um tipo, você pode especificar dynamic em vez disso, como eu o entendo. (Estou certo de que há algumas exceções para isso, mas essa é a idéia básica.)

EDIT: primeira entrada do blog do Chris Burrow em dynamic (há um segunda já;. esperar mais breve) dá um exemplo de classe que usos dynamic todo o lugar

Este trecho de código do livro "CLR via C #, 3ª Ed" mostra dinâmica em ação:

using System;
using System.Dynamic;
static class DyanmicDemo
{
    public static void Main() {
  for(Int32 demo =0; demo < 2; demo++) {
   dynamic arg = (demo == 0) ? (dynamic) 5 : (dynamic) "A";
   dynamic result = Plus(arg);
   M(result);
  }
 }
    private static dynamic Plus(dynamic arg) { return arg + arg; }
    private static void M(Int32 n) { Console.WriteLine("M(Int32): " + n); }
    private static void M(String s) { Console.WriteLine("M(String): " + s); }
}

Quando eu executar Main, eu recebo o seguinte resultado:

H (Int32): 10

M (String): AA

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top