代码之家  ›  专栏  ›  技术社区  ›  James Newton-King dbc

C 4.0中的新动态变量

  •  6
  • James Newton-King dbc  · 技术社区  · 16 年前

    C 4.0中的动态变量是否可以是类中的成员、传入方法或从方法返回?C 3.0的var不能,但是我没有看到任何关于动态是否可能的讨论。

    3 回复  |  直到 15 年前
        1
  •  5
  •   John Sheehan    16 年前

    以上都是。我在vpc中试用过它们,并且能够做到所有这些。见 'New Features in C#' document here

        2
  •  6
  •   Jon Skeet    16 年前

    对。两者之间有很大的区别 var dynamic .

    var 意思是“让编译器推断变量的实际类型”。

    动态 变量的类型-因此可以在任何可以指定类型的地方指定 动态 相反,据我所知。(我确信有一些例外,但这是基本的想法。)

    编辑:Chris Burrow's first blog entry on dynamic (有一个 second one 已经;期望很快)给出了一个示例类 动态 到处都是。

        3
  •  2
  •   Mohsen Afshin    15 年前

    本书“clr via c,3rd ed”中的代码片段显示了动态操作:

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

    当我执行main时,我得到以下输出:

    M(IT32):10

    M(字符串):AA