【问题标题】:Difference between Dynamic, Var and Object [duplicate]Dynamic,Var和Object之间的区别[重复]
【发布时间】:2019-03-29 14:57:35
【问题描述】:

有人可以通过一些程序示例帮助我了解 C# 中 Dynamic、Var 和 Object 之间的确切区别。我在网上搜索,但我没有得到确切的区别。

谁能帮我解决这个问题?

【问题讨论】:

  • 所有类型本质上都继承自objectvar 是一种语法糖,可帮助您节省键入完整类型名称的时间。在示例var test = "hello" 中,您应该理解var 在编译时转换为stringdynamic 不会更改它引用的对象的类型,但不会在编译类型时对 dynamic 的调用执行检查。
  • 请注意,该帖子中的最佳答案不是接受的答案,也不是最高分,而是 Selman Genç 的答案。

标签: c#


【解决方案1】:

这里有一些区别。希望这对您有所帮助。

【讨论】:

    【解决方案2】:

    我是 C# 编译器

    • 当我看到 objectdynamic 时,我通常会对自己说,这些家伙可以是任何东西,最好忽略所有甜蜜的编译器问题,让开发人员自己负责,让我的朋友 C# 运行时在以后处理这些问题

    • 当我看到 var 时,我知道开发人员依赖我来确定类型,所以我应该做我的工作:)。


    void Main()
    {
        dynamic person = new { name = "name" };
        var age = person.age; // throw when you run the code
        var name = person.name; // I'm cool with it
    
        object isThisLove;
        isThisLove.IsReal(); //compiler will throw
        var isLoveReal = (((Love)isThisLove).IsReal()); // sweet, compiler will ignore, but runtime will throw if love is not Love
    }   
    
    public class Love
    {
        public bool IsReal() { return false; }
    }
    

    【讨论】:

    • @John 错字我的朋友,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2016-09-04
    相关资源
    最近更新 更多