C_Sharp 板


LINE

各位先进大家好 今天在msdn上面看到一段 http://msdn.microsoft.com/zh-tw/library/ff926074.aspx 当指派右边的变数型别很明显,或是不需要精确的型别时,使用隐含型别的区域变数。 也就是说,如果我宣告一个string的变数 不应该写成 string a = "123"; 而是要写成 var a = "123"; 想请教一下为什麽要这样? THX --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 113.61.164.195
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1408283550.A.153.html
1F:→ iterator: 可参考 http://tinyurl.com/k3e88rq 08/17 22:05
2F:→ iterator: 不过我个人不建议这样写, 如果该变数非用过即丢, 08/17 22:07
3F:→ iterator: 保留完整的型别,在未来个人,或是团队开发时,会比较清楚 08/17 22:08
4F:→ iterator: ^^维护 08/17 22:09
5F:→ BigLoser: 谢谢楼上回覆 08/17 22:10
6F:推 shomingchang: 用 linq 的时候 08/17 22:11
7F:推 YahooTaiwan: 超讨厌人家写 var,很难看 08/17 22:55
8F:→ m339606: 当你懒的时候 08/17 23:50
9F:→ uranusjr: 写完整型别不会错, var 的最佳用途应该是型别名很长可是 08/18 00:32
10F:→ uranusjr: 变数生命期其实超短(例如在回圈里)写一堆也没意义时 08/18 00:33
11F:推 hoyunxian: 我反而是喜欢用var多一点,因为多半时候VS会帮你判断 08/18 10:09
12F:→ hoyunxian: 真的想不起来的时候滑鼠动一下就能看到型别了 08/18 10:10
13F:→ ssccg: LongClassName = new LongClassName() 的时候,写var看起来 08/18 12:43
14F:→ ssccg: 差不多啊,这种时候写完整型别很多余 08/18 12:44
15F:推 liddle: C#是强型别语言,所以你可以不用多花精神管变数的型别 08/18 14:58
16F:→ liddle: 可以多花时间在表达自己的商业逻辑。当程式码写得像是英文 08/18 14:59
17F:→ liddle: 文章。无论是在验证逻辑或是日後维护,都有数不尽的好处。 08/18 15:00
18F:→ bbcust: wcf和linq时会觉得var很好用 08/18 15:31
19F:推 YahooTaiwan: VS 当然会帮你判断,但是做为一个拥有速读技能的程式 08/18 21:27
20F:→ YahooTaiwan: 开发者,var 无疑是让阅读时间从 logN 上升到 N^2 08/18 21:28
21F:推 YahooTaiwan: 就像在阅读一篇没有标点符号的文章,读得懂,读得慢 08/18 21:30
22F:推 YahooTaiwan: 型别名称长,有 intellisense 帮忙,不成问题吧 08/18 21:40
23F:→ shomingchang: 阿有些时候就是不知道型别啊 不用 var 要填啥? 08/19 07:09
先谢谢大家的回应,不过我指的是,很清楚型别要用var,经由上面一些版有 的回应我也可以了解是为什麽了 ※ 编辑: BigLoser (60.249.104.106), 08/19/2014 08:19:46
24F:推 YahooTaiwan: 我还以为不知道型别时应该填 dynamic 08/19 20:00
25F:推 hoyunxian: 但是dynamic的话执行时才会知道错在哪,var的话编译就 08/20 11:12
26F:→ hoyunxian: 会告诉你问题出在哪了 08/20 11:12
27F:→ ssccg: var是知道型别,只是写出来没好处的时候用的 08/20 19:17
28F:→ Litfal: 重点不是var, 而是var後面object的命名...才是好读的关键 08/25 14:44
29F:→ Litfal: 有些人说写成不要用var比较好读, 但宣告才一行, 使用才是 08/25 14:46
30F:→ Litfal: 重点。好读的code应该是看到function name和object name就 08/25 14:48
31F:→ Litfal: 大概知道它在做什麽才对。 08/25 14:48
32F:→ iterator: 变数名称表示其用途,跟变数型别是两回事... 08/25 16:08
33F:→ Litfal: 这样说好了,宣告後要怎麽取得instance? 08/25 16:22
34F:→ Litfal: 1. new: class都写在後面了,前面宣告还写出来有什麽意义? 08/25 16:23
35F:→ Litfal: 2 工厂: 你不知道工厂建出来的东西是什麽? 那要不是工厂设 08/25 16:24
36F:→ Litfal: 计有问题, 就是连工厂是哪个工厂都搞不清楚了。 08/25 16:24
37F:→ Litfal: 3. 其他method return: 光看method name还不够清楚?那要 08/25 16:26
38F:→ Litfal: 不是真的很容易混淆,就是method name取得不好。 08/25 16:26
39F:→ Litfal: 绝对会有容易混淆的部分,那写明白当然是必须的。但这就好 08/25 16:29
40F:→ Litfal: 像注解一样,每行都注解的code是好code?我不那麽认为。 08/25 16:29
41F:→ iterator: 函数名称表示其用途,跟回传型别一样是两回事... 08/25 16:36
42F:→ Litfal: 没有人说他是同一回事,但很多情况下不影响你读code。 08/25 16:40
43F:→ iterator: 既然知道不是同一件事情,就别扯着一起讲.. 08/25 16:43
44F:→ Litfal: 真奇怪了, 这有什麽不适合一起说的?你只是在排斥别人的想 08/25 16:45
45F:→ Litfal: 法而已。 08/25 16:45
46F:→ iterator: 嘿,我不是反对变数/函数名称最好能适切表达其用途喔 08/25 16:50
47F:→ Litfal: 拿你转的那一篇来说,里面有var order=GetOrder(orderId); 08/25 16:51
48F:→ Litfal: 我觉得这样一行就再清楚不过了。不需要特别去Order order= 08/25 16:52
49F:→ Litfal: 当然,若有好几种Order(也就是容易混淆),明确写出来当然 08/25 16:53
50F:→ iterator: 所以你的确知道变数名称order跟函数名称GetOrder的命名, 08/25 17:01
51F:→ iterator: 和前面的 var 或 Order 或 OOXXOrder 或 KKVVOrder, 08/25 17:02
52F:→ iterator: 对於可读性来说, 是两回事 08/25 17:03
53F:→ Litfal: 怎麽会是两回事?例如var order = getOrder()最直觉就应该 08/25 17:13
54F:→ Litfal: 认知它是个Order type。若是违反这个直觉,那是应该写明白 08/25 17:15
55F:→ iterator: 当专案规模够大,保留完整型表,在未来个人维护, 08/25 17:24
56F:→ iterator: 或是团队开发时,会比较清楚 08/25 17:25
57F:→ iterator: 变数名称跟函数名称是没办法完整解答"var"跟完整型别的 08/25 17:26
58F:→ iterator: 表 => 别 typo 08/25 17:27
59F:推 YahooTaiwan: Order order = getOrder(); 这样世界不是很美好吗?? 08/25 18:45
60F:推 hoyunxian: 其实另一个我喜欢打var的原因是少打一次物件名就少一次 08/26 16:48
61F:→ hoyunxian: 因为胖手指而出错的可能性 08/26 16:48
62F:推 Ansaga: 大部份情况var是因为我懒(遮脸 08/27 17:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP