- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Possible Duplicate:
C# 'var' keyword versus explicitly defined variables
对于那些仍在查看此内容的人,我已经完全改变了对 var 的看法。我认为这很大程度上是由于我对这个话题的回应。我现在是一个狂热的“var”用户,我认为它的支持者下面的评论在几乎所有情况下都是绝对正确的。我认为我最喜欢 var 的一点是它确实减少了重复(符合 DRY),并使您的代码相当干净。它支持重构(当你需要改变某些东西的返回类型时,你需要处理的代码清理工作就会减少,而且不是每个人都有一个花哨的重构工具!),而且有趣的是,人们似乎并没有真正的问题预先不知道变量的具体类型(按需“发现”类型的功能很容易,这通常是必要的,即使您确实知道类型的名称。)
因此,这里为 'var' 关键字热烈鼓掌!!
<小时/>这是一个相对简单的问题……实际上更像是一个民意调查。我是 C# 的忠实粉丝,自 .NET 首次发布以来,我已经使用它超过 8 年了。我非常喜欢该语言的所有改进,包括 lambda 表达式、扩展方法、LINQ 和匿名类型。然而,我认为 C# 3.0 的一项功能被严重滥用了......“var”关键字。
自从 C# 3.0 发布以来,在博客、论坛,甚至 Stackoverflow 上,我已经看到 var 几乎取代了所有已编写的变量!对我来说,这是对该功能的严重滥用,并导致非常任意的代码,由于不清楚变量的实际类型,可能会出现许多令人困惑的错误。
“var”只有一个真正有效的用途(至少在我看来)。您问,什么是有效用途?唯一有效的用途是当您无法知道类型时,并且是唯一可能发生这种情况的情况:
访问匿名类型时
匿名类型没有编译时标识,因此 var 是唯一的选择。这是添加 var 的唯一原因......以支持匿名类型。
那么...你的意见是什么?鉴于 var 在博客、论坛上的大量使用,以及 ReSharper 等工具的建议/强制执行,许多崭露头角的开发人员将认为它是完全有效的。
我想了解社区的意见。我看到 var 使用了很多,但我不知道为什么,也许有一个很好的理由(即简洁/简洁。)
最佳答案
var
是一个绝妙的主意,可以帮助实现良好编程的关键原则:DRY,即不要重复自己。
VeryComplicatedType x = new VeryComplicatedType();
是糟糕的编码,因为它重复了 VeryComplicatedType
,而且效果都是负面的:代码更加冗长和样板化,可读性较差,对于代码的读者和编写者来说都是愚蠢的“makework”。因此,与 Java 和以前版本的 C# 相比,我认为 var
是 C# 3 中非常有用的增强功能。
当然,它可能会被轻微地误用,通过使用类型不清晰和明显的表达式作为 RHS(例如,调用其声明可能很远的方法)——这种误用可能会降低可读性(通过强制读者去寻找方法的声明或深入思考其他一些微妙的表达式的类型)而不是增加它。但如果您坚持使用 var
来避免重复,您将处于最佳位置,并且不会误用。
关于c#-3.0 - C#中 'var'的邪恶之处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/902563/
这个问题已经有答案了: What is the difference between a variable, object, and reference? [duplicate] (5 个回答) 已关
我正在使用以下代码来学习java套接字编程。它的作用是,client.java 程序从用户那里获取一个号码并将其发送到 sever.java。然后服务器将其乘以2并发回给客户端。在我的客户端程序中,它
我编写了一个自己开发的串行端口类,为了简单起见,我使用了阻塞/同步/非重叠。我浏览了所有 MSDN 文档,这对我来说很困难。 我在从端口打开、传输或接收字节方面没有任何问题。所有操作都是同步并且没有线
//Not finished -- disregard function evaluate() { var cdate = new Date(); var cday = cdate.getDa
我已经尝试过了,但它有效 例如: x= 523.897 y= x[0:"."] print y 我只想打印 523。如何让 Python 抓取字符串直到某个字母或数字? 最佳答案 行 y = x[0:
我想移动拐 Angular 处的方框(从左上角开始水平移动 Angular 落到右上角然后你去到右下角。 function myMove() { var elem = document.getEl
如何让侧边栏停止在第二个侧边栏部分而不是顶部? fiddle http://jsfiddle.net/EvAdP/2/ HTML I'm the header
我刚刚在大学开始我的第二门编程类(class),我们的第一个作业相当简单,旨在基本上检查我们的环境并检查我们是否知道如何通过类(class)网站提交作业。 当我运行我们提供的代码时,它卡在应该提示用户
我目前正忙于我的这个信息学元素(构建一个示例交友网站)。问题是我在把所有东西都放在正确的地方时遇到了一些麻烦。一切都很顺利,直到我的邮箱出现在错误的位置(但是,Dreamweaver 会按照我的意
我想,和你一样hover a GIF shot on Dribbble , 当光标位于元素高度顶部之后/50% 处时显示带有信息的 div。 测试示例 我做了这个,这是有效的,但有点棘手......特
我有一个下拉菜单,并且我已将 mouseenter 设置为选项。因此,如果鼠标位于触发器之外,菜单应该关闭。我正在使用 jQuery 1.8.0。这可能是 CSS 问题吗? 这是我初始化插件的代码。
我正在尝试在 Visual Basic for Applications 中编写一个 hello world 应用程序,即修改 Excel 工作表中的单元格。这是: Sub hello() D
我的应用程序使用 JSF 2.1 和 PrimeFaces。最近,由于一些线程卡住,观察到 CPU 利用率非常高。所有卡住线程的卡住线程转储都指向 javax.faces.component.UICo
在列出 aws cognito 用户时,我的 Node js 应用程序遇到问题。 仅当我有超过 60 个 Cognito 用户时才会出现此问题。 Reference of API 下面是我的代码片段。
我是 ubuntu 用户..我在 php 中有一个执行 python 文件的命令..python 文件设置为可执行文件..所以,我的 php 命令是:- shell_exec("try.py");
我正在尝试将剪贴板内容写入文件,但由于某种原因程序卡住了。 FILE *fp; fp = fopen("tmp.code","w"); fprintf(fp,getclip()); /*writes*
当用户向下滚动时,我使用此代码使侧边栏固定在某个 div 处。问题是我必须手动输入一个阈值数字,这并不总是理想的,因为该部分的位置可能会更改或在各种浏览器和系统之间不一致。我想知道是否有一种方法可以在
我有一个字符串数组,例如 first_page = {{"U","M","Y","Q","I","A","L","D","P"、"F"、"E"、"G"、"T"、"Z"、"V"、"W"、"H"、"O"、
我能否在页面上的特定 px 位置放置一个元素(例如图像),然后让文本围绕它流动? 必要时使用 JS/jquery。 我确实看到了这个Have text flow around an object th
第一次在这里提问。 我有两个简单的 Javascript 函数,1. 生成一个随机字母,2. 在每个单元格中使用单个字母填充 10x10 表格。创建表的主要函数是通过带有 onclick 的简单 HT
我是一名优秀的程序员,十分优秀!