日期:2014-05-17  浏览次数:20621 次

大家说用对象好还是字符串的拼接好?
就比如简单的,往ListView或ListBox中,有时需要加载很多图片,有时显示的只是图片的名称,而不是整个路径.然后我自己做的时候,我全部封装成我自己定义的对象,对象中对外显示的是图片的名称,但是,因为是对象,我随时随地都可以选择性地获取图片的名称或全部路径.
我之所以想封装为对象,一个是因为操作方便,另一个是因为MSDN说,对于多次用到,最好用 FileInfo 而不是 File.
所以我定义自己的类.因为FileInfo有时不比我定义的好用.
我觉得用对象,非常方便.但是每次用的时候,现在都变成这样,每次用到对象,我都担心会占用太多内存...

------解决方案--------------------
不必要担心,最重要的是实践,看看实践了以后是否还会发生你所担心的情况。
------解决方案--------------------
引用:
就比如简单的,往ListView或ListBox中,有时需要加载很多图片,有时显示的只是图片的名称,而不是整个路径.然后我自己做的时候,我全部封装成我自己定义的对象,对象中对外显示的是图片的名称,但是,因为是对象,我随时随地都可以选择性地获取图片的名称或全部路径.
我之所以想封装为对象,一个是因为操作方便,另一个是因为MSDN说,对于多次用到,最好用 FileInfo 而不是 File.
所以我定义自己的类.因为FileInfo有时不比我定义的好用.
我觉得用对象,非常方便.但是每次用的时候,现在都变成这样,每次用到对象,我都担心会占用太多内存...

FileInfo与File的区别在于前者几乎将一个文件相关所有信息(名称、路径、大小、修改日期、存档属性、访问权限等)都放在一个对象了,这样多次使用时,不用频繁地访问IO,以及一堆的权限确认判断
主要是出于性能方面的考虑
而你说的用字符串还是对象,则更侧重于业务逻辑的设计,你的问题可以说没有标准答案,要看具体的问题
还有,不是说用对象了占用内存就多了,对于你的例子影响很小,并且很多时候也不会一直占着
------解决方案--------------------
File的静态方法并不需要额外的存储,而FileInfo是一个对象。

通常意义上说,两者没有什么区别。
------解决方案--------------------
引用:
不会一直占着我知道,但是GC也没有那么及时哈... 

你会因为见到一颗流星而担心天塌下来么?
------解决方案--------------------
更严谨的当然是用对象来做了,这样不过要增加不少代码量,如果你只是一个测试的话,为了简单点就用字符串拼接做就好了