Frage

Kann dynamische Variablen in 4.0 C # Mitglieder einer Klasse oder ging in oder von Methoden zurückgegeben? var von C # 3.0 konnte nicht, aber ich habe keine Erwähnung überall von gesehen, ob es möglich ist oder nicht mit dynamischen.

War es hilfreich?

Lösung

Alle oben genannten. Ich versuchte, sie in der VPC aus und war in der Lage, alle diese zu tun. Sehen Sie die 'Neue Funktionen in C #' Dokument hier

Andere Tipps

Ja. Es gibt einen großen Unterschied zwischen var und dynamic.

var bedeutet nur, „lassen Sie den Compiler den realen Typ der Variablen ableiten“.

dynamic ist der Typ der Variablen - also überall Sie einen Typ angeben, können Sie dynamic stattdessen angeben können, wie ich es verstehe. (Ich bin sicher, dass einige Ausnahmen von dieser Regel gibt es, aber das ist die Grundidee.)

EDIT: Chris Burrow erster Blog-Eintrag auf dynamic (es gibt ein zweiten schon, erwarten bald mehr) gibt ein Beispiel-Klasse, die dynamic überall verwendet

.

Dieser Code-Schnipsel aus dem Buch "CLR via C #, 3. Auflage" zeigt dynamische in Aktion:

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); }
}

Als ich Haupt ausführen, bekomme ich die folgende Ausgabe:

M (Int32): 10

M (String): AA

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top