zoukankan      html  css  js  c++  java
  • c# 一些细节

    1.动态对象和匿名对象
    偶然看到一个语法,觉得特别方便然后频繁使用,但是没有深究,直到今天忽然发现我潜意思中对它的认知居然是错误的.
     var data=new { State=1,Message="ok!" };
     我一直以为这是动态类型对象,因为前面用了var
    知道今天我看到了ViewBag.StatusMessage 这时突然一下子发现(其实之前有关门看到ViewData做比较的文章,但一直没想起来这货),
    这种语法和JavaScript的类型是一样的,于是我F12了一把:"public dynamic ViewBag { get; }"
     ViewBag 是动态类型dynamic,那var data是什么类型呢?
    然后我尝试这样写
    var data=new { };
    data.State=1; 
    编译错误不包含State定义....so我瞬间,醒悟这是java常用了的匿名类型呀(在new { }这一步时,编译器就会将其类型确定下来,等到运行时,data.State自然就是未定义.),
    so 我觉得可以这么理解
    而dynamic应该属于运行时的动态类型,匿名类型属于编译前的动态类型

    本人(徐自勉)原创内容,转载请注明出处,作者.
  • 相关阅读:
    js开发笔记
    安全相关开发笔记
    常用.NET库使用总结
    Windows使用总结
    .NET Web开发笔记
    Unity插件使用总结
    WinForm开发笔记
    C#开发笔记
    iTunes使用总结
    Mac使用总结
  • 原文地址:https://www.cnblogs.com/xuzimian/p/5357230.html
Copyright © 2011-2022 走看看