突然想起了.netframework 3.5 新增加的var 变量声明关键字。
因为自己是从学校1.1开始接触,工作几年后虽然编辑器从Vs2003,到现在的Vs2012..
.netframework支持的语法是变化了很多。但一些习惯还是改不过来。例如声明变量的时候,
我就总觉得var定义的变量阅读性特不好。非得看赋值代码部分来知道这个变量是啥类型。
所以总习惯“显示定义”----Class c=...,而不是var c=...
可是这就有一次变成被某个人说不对,代码写的变冗余垃圾。。。
有时候代码写了一段,经常不自觉有删除几行更改,于是代码格式中就会出现少数位置多空一行。
然后这样又被他称为了代码不规范啥的。。。好吧。。
特别是属性定义,我习惯写成A样子,然后就说不行要改成B格式。。。吐血~~~,习惯性的东西还真的得克服才行。。
我都怀疑真的遇到是个纯技术偏执狂在完美挑东挑西。
///A
public string Code
{
get;
set;
}
///B
public string Code{get;set;}
然后扯一堆的啥命名规范。。。我特讨厌js变量,为什么对象就一定得大写,说是啥命名规范。。
我真想说我追寻javascript自己的那套命名,不参考啥.net代码规范。。。
我没看过window对象是Window声明。。。
.net命名规范 string codeid,我就习惯要string codeId,
各位亲,我是不是习惯性的错的很离谱?
------解决方案--------------------
跟环境中大多数人选择的方式相同就可以了,这样有利于互相沟通,理解。没有绝对的好与坏。
------解决方案--------------------
苹果都扁平化了,世道变了
------解决方案--------------------
我使用var是为了方便 不想引用system.data以及system.data.sqlclient就使用datatable
不想using system.model就使用实体对象..
至于你的字段的例子.
我还是倾向第二种..毕竟代码行数少 感觉很清晰 哈哈..
------解决方案--------------------
因为没有var,就没法用匿名类型,没有匿名类型,linq就不好用。
看下面的代码:
var query = from x in db.Table1
where x.city == "北京"
select new { x.name, x.age, x.address, x.email, gender = x.gender ? "男" : "女" };
这个query是IQueryable<匿名类型>,匿名类型是编译器产生的,没有名字,不用var你怎么写?
如果不用匿名类型,我随便返回几个字段,都要定义一个类,累不累?
再说,var是C# 3.0增加的特性,和.net 3.5无关。
------解决方案--------------------
不算离谱。
------解决方案--------------------
如果你一定要js那一套,其实你就是在纠缠什么“命令规范”。
能够接受很照顾别人的习惯,是个好的习惯。就好像你应该照顾别人眼中的所谓“c#规范”似地,你可以偷偷笑他,但是说话不要太离谱就行了。
------解决方案--------------------
记住一句话, 到什么山唱什么歌吧
------解决方案--------------------
+1
最反感的就是按照自己的习惯(其实就是将别的语言/框架/平台)带入另一个场合。
写代码的最高境界就是,你用什么api和语言,你的程序风格完全和系统类库/源代码的风格一样。
------解决方案--------------------
你碰到了强迫症患者。。。。。
属性两种写法都无所谓的
至于string codeid这种写法我是比较讨厌的,
方法内变量我喜欢写成string codeID,类变量写成string _codeID;最讨厌全小写的写法,全大写的写法我也认可,但必须是const
------解决方案--------------------
版主说得很有道理, 因为系统类库/MSDN 等的写法, 代表了官方的代码风格, 绝大多数的程序员都会按这个来的。
比方说类名、方法名大写, 某人偏要搞个小写出来, 看的人就非常吃力了——一下子根本无法判断到底是个什么东东。
当然, 你的某些做法也没有错, 滥用推断类型其实也不是个很好的习惯, 虽然没有语法错误, 但许多不需要用的时候可读性就差了许多了。