读书人

都是 var 这样好用吗?该怎么处理

发布时间: 2012-05-09 12:13:59 作者: rapoo

都是 var 这样好用吗?
一个 队员 里面所有代码 开头都是 var

C# code
var config = new MagorConfiguration("Config.xml");        var srcName = config["sourceName"];        var dbHost  = whatever1("host");        var dbUser  = config["user"];        var dbPass  = whatever("id");        var indexName = srcName + "_index";


各位大牛们有什么看法吗?

我感觉读起来很费劲

特别是 如果 我要写个新函数 doit( srcName,dbHost );

我还得 爬回去看原形

大牛们平时怎么用 var 的,给点指导吧






[解决办法]
这样用肯定不对。至于什么时候用要看需要。
[解决办法]
临时变量用起来方便,没问题,全局变量定义的时候必须指明,因此无法使用。
总之能用的时候就用,挺好的。
[解决办法]
匿名变量
[解决办法]
http://msdn.microsoft.com/zh-cn/library/bb384061.aspx
[解决办法]
不建议滥用var
[解决办法]
var 只是设计时概念,编译器替你做了一点推理工作而已。

必要的使用场景应该就是用来处理匿名类型。除此之外,都不必要。

对我来说只是在图方便的时候用用,不会在大段代码中使用,不然让看代码的人很烦。




[解决办法]
还有一种可以能你的 队员 安装了 ReSharper
在默认情况下,ReSharper 会检测代码中编写信息.
局部变量 会自动提示转换成 var 类型,

如果你的队员是完美主义者,可能就会把所有的局部变量类型修改成 var.

[解决办法]
探讨
一个 队员 里面所有代码 开头都是 var

C# code


var config = new MagorConfiguration("Config.xml");

var srcName = config["sourceName"];

var dbHost = whatever1("host");

var dbUser = con……

[解决办法]
http://www.198store.com/t/9/1336451231x-954498885.jpg

那个红学的小圈圈就是中的橙色标记就是提示,点击以后可以到相应的代码段。
[解决办法]

[解决办法]
探讨

不建议滥用var

[解决办法]
不建议滥用var,根据情况使用

[解决办法]
昨天看了一个贴的问题是这样的
List<自定义的类型> Get()
{
var result= from x ....select new {}
return result.ToList()
}
系统报错

string GetUser()
{
var dbUser = config["user"];
return dbUser;
}
我不知道会不会也报错罗

[解决办法]
看到一堆var,联想起了DB中的field1、field2、field3...
[解决办法]
探讨
昨天看了一个贴的问题是这样的
List<自定义的类型> Get()
{
var result= from x ....select new {}
return result.ToList()
}
系统报错

string GetUser()
{
var dbUser = config["user"];
return dbUser;
}
我不知道会不会也报错罗

[解决办法]
探讨

昨天看了一个贴的问题是这样的
List<自定义的类型> Get()
{
var result= from x ....select new {}


return result.ToList()
}
系统报错

-------------------------
这里报错,是因为你from返回的查询类型,和 List<自定义的类型> 不符。

string GetUser()
{
var dbUser = config["user"];
return dbUser;
}
我不知道会不会也……


[解决办法]
不建议这么做.
[解决办法]
用var只有两种情况:
第一:类型名很长,为了提供coding效率。
第二:碰到匿名类型,比如linq中投影出新类型时,这只能用var。
C# code
var str="12313";//滥用var i=8888;//真正发挥var的作用var query=from data in list select new{id=data.id,title=data.title};
[解决办法]
看个人习惯吧,无所谓!
[解决办法]
探讨

引用:

昨天看了一个贴的问题是这样的
List<自定义的类型> Get()
{
var result= from x ....select new {}
return result.ToList()
}
系统报错

-------------------------
这里报错,是因为你from返回的查询类型,和 List<自定义的类型> 不符。

……

[解决办法]
等号对齐 好看多了。
[解决办法]
我来说下Linq的连续操作思路吧,写过Linq表达式的都知道,往往一个操作的结果,例如Where(xxx).Union(xxx).OrderBy(xxx).Select(xxx)之后返回一个结果,这看起来很优雅,但每个“.”号如果用中间变量存放,显然类似使用var关键字来存放。
使用var是为了提高编程效率,对于临时变量的操作非常高效,非常提倡,特别是在某个封装的函数内部大量使用。但是如果一个变量要跨作用域,或者当你准备重用某个变量的时候,那么就一定要定义明确。前者是不允许直接定义一个未赋值的var变量,后者则是编程的严谨性需求。前面有人提到了“可读性太差了”,这个可读性只有在某个变量重利用的时候才需要,一次性变量不需要可读性,如果你看不懂一次性变量,就是编程水平不到家。其实javascript里面大量用到var关键字,这点读代码能力是必须掌握的,否则要叫写js的人看不起了。
[解决办法]
探讨
我来说下Linq的连续操作思路吧,写过Linq表达式的都知道,往往一个操作的结果,例如Where(xxx).Union(xxx).OrderBy(xxx).Select(xxx)之后返回一个结果,这看起来很优雅,但每个“.”号如果用中间变量存放,显然类似使用var关键字来存放。
使用var是为了提高编程效率,对于临时变量的操作非常高效,非常提倡,特别是在某个封装的函数内部大量使用。但是如果一个变……

[解决办法]
var一般是配合linq使用
[解决办法]
虽然var是compile-time,用var可以减少代码量,迫使变量名更具有意义
如果要类型你才能看懂,那么你让js,ruby,py情何以堪啊
[解决办法]
不好用~
[解决办法]
不会啊,使用var可以让代码更清晰,让你更加专注于代码的逻辑,而类型是会自动推断的。
因此,能使用var的时候尽量使用var。
[解决办法]
如果楼主对这个很抵触的话,你让那些不需要声明类型的FP语言情何以堪呐
[解决办法]
Y的不用IDE,不过VIM这档都是有AutoCompleted,个人觉得不是这个问题
[解决办法]
对var是又爱又恨
现在在工作中尽量还是避免用到,当然在linq里会用到很多

读书人网 >C#

热点推荐