专栏首页DotNet程序园C# 一句很简单而又很经典的代码

C# 一句很简单而又很经典的代码

一.知识点

二.问题

如果以上四个问题,你很自信,那么以下,您就不要看了,因为我想说的东西真的很简单。

如果你开始怀疑自己,可以继续向下看。你自己到底真的理解吗???

再看下面这段代码有没有问题?

如果你觉得没有问题,那么你需要看看。这时候会编译报错,为啥,怎么回事。

  第6行编译报错:

三.分析

 如果你非常清楚属性的本质的话,那么上述代码可以进行转换,将属性转换为普通方法。(属性的本质就是方法嘛)

  果然上述的改写只是将属性的写法转为本质写法-写成两个普通的方法。结果还是报一样的编译错误。

,编译报错提示还是一样的CS1612

  再修改一下 

  编译打印结构是 0..0..0。

  压根就没变,当然没有变啊,因为v2是副本,你更改的只是副本,并没有改变t中的v,同理,通过t.GetVector()也是一个副本,没有意义。所以C#语法在对于这种情况,帮我们做了一个处理,如果写了这样的代码,直接给出编译报错。C#还是很智能的。就是如果我们错误的进行一个无意义的操作,会直接给出提示。这里给C#语法赞一个。

四.杂谈

  这一段代码虽然好像很简单,但是真的藏的很深,楼主工作三年。记得曾经有一次去网易二面,被一个大佬问到这个问题,懵逼了,就乱猜吧,一开始说,那个枚举值中的x只是get,没有set。然后大佬提示我不是的,然后我才误打误撞,恍然大悟,是因为枚举值传递是副本传递,再进行赋值操作没有意义。现在想想,能出这个问题的大佬,真的很强,一道很简单的问题,但是考察的东西真的很多很多。

本文分享自微信公众号 - DotNet程序园(dotnetblog),作者:不三周助

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Asp.NetCore轻松学-使用Docker进行容器化托管

    没有 docker 部署的程序是不完整的,在写了 IIS/Centos/Supervisor 3篇托管介绍文章后,终于来到了容器化部署,博客园里面有关于 doc...

    梁规晓
  • ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建

    当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,...

    梁规晓
  • .NET Core 学习资料精选:入门

    本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料。我进行了知识点归类,让大家可以更清晰的学习.NET Core。

    梁规晓
  • 一道面试题引发的事件循环深入思考

    面试题如下,大家可以先试着写一下输出结果,看与正确答案是否有出入,如果大家不能准确的做出答案,可以通过下面对微任务,事件循环,定时器等相关代码执行顺序的讲解,让...

    coder_koala
  • 用一道大厂面试题带你搞懂事件循环机制

    面试题如下,大家可以先试着写一下输出结果,然后再看我下面的详细讲解,看看会不会有什么出入,如果把整个顺序弄清楚 Node.js 的执行顺序应该就没问题了。

    前端迷
  • 用一道大厂面试题带你搞懂事件循环机制

    面试题如下,大家可以先试着写一下输出结果,然后再看我下面的详细讲解,看看会不会有什么出入,如果把整个顺序弄清楚 Node.js 的执行顺序应该就没问题了。

    桃翁
  • Golang之Mysql操作

    超蛋lhy
  • python安装教程(Win8环境)

      首先,找到python下载的地址https://www.python.org/downloads/,如下图所示

    py3study
  • Windows下适用于PHP 7.1的memcache扩展工具编译

    介绍 memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤...

    用户7657330
  • 《实现模式》读书总结

    这是一本关于如何写好代码的书,是一本关于“如何编写别人能懂的代码”的书。

    wxdut.com

扫码关注云+社区

领取腾讯云代金券