将文件名传递给方法时,我应该使用FileInfo还是普通文件名?

Mar*_*tin 12 c# fileinfo

嗯,标题说明了一切.将文件名传递给方法时,我应该使用FileInfo对象还是普通文件名(字符串)?为什么我更喜欢一个到另一个?

我的一些同事喜欢写这样的方法:

  • void Export(FileInfo fileInfo)

它比以下更好:

  • void Export(string fileName)

谢谢!

Jon*_*eet 17

我通常只使用string- 在大多数情况下它更简单.否则你可能只是FileInfo首先从字符串中创建一个新的.

如果您正在创建该方法,则始终可以提供重载以允许两者.

当然,如果你知道你想打电话给它的地方,你通常会有一个FileInfo而不是一个string,这是另一回事.

我可以看到你同事的观点 - 在某些方面,a FileInfo是一种表达参数的"更清洁"的方式.我认为string虽然是更务实的方法:)

  • 我也用字符串.我只考虑使用FileInfo,如果我想使用它提供的其他东西 - 比如CreationTime. (3认同)
  • @Esteban - 您没有使用字符串表示文件,而是表示文件的路径,*是*字符串. (2认同)

Ini*_*eer 6

通常我会传递字符串.但是,您可以重载该方法以使每个人都满意.


Pau*_*ier 5

差异主要在于有一些检查正在进行; FileInfo构造函数检查null或明显无效的参数.它还有其他一些功能; 采用FileInfo基本上只是将处理来自FileInfo构造函数的异常的责任放在调用代码上,而不是代码.

这是FileInfo构造函数的MSDN参考,它显示了构造函数可以抛出的内容:

http://msdn.microsoft.com/en-us/library/system.io.fileinfo.fileinfo.aspx