本帖最后由 lampo 于 2015-8-18 21:44 编辑
在C#/.NET的开发中,如果遇到需要实现Bytes到KB,MB,GB,TB单位转换这样的问题,你会想到的方法有哪些呢?使用if或者switch判断语句,根据传入的Bytes大小来判断返回对应的单位?形如:
[C#] 纯文本查看 复制代码 public static string ConvertByte(long len)
{
if(len>1024&&len<1024*1024)
{
......
}
if(len>1024*1024&&len<1024*1024*1024)
{
......
}
......
return ...
}
相信有人这样干过吧,笔者以前也这样写过。但做对.NET的开发人员来说,我们在写代码的时候还是应该有些追求的--追求代码执行的效率、追求代码实现的美观。对于实现同样一个结果来说,不同的开发人员会有不同的实现过程。就像本文题目中涉及到的问题,C#/.NET从Bytes转换到KB,MB,GB,TB这个实现也有,下面就来个简单的实现方法,直接看代码:
[C#] 纯文本查看 复制代码 public static string ConvertBytes(this long len)
{
string[] sizes = { "Bytes", "KB", "MB", "GB", "TB" };
int order = 0;
while (len >= 1024 && order + 1 < sizes.Length)
{
order++;
len = len / 1024;
}
return String.Format("{0:0.##} {1}", len, sizes[order]);
}
怎么样,是否感觉高大尚了。哈哈。。。
如果你有更好的实现方式,欢迎交流!!!
本文同步发布至:图享 » C#/.NET不使用判断语句实现Bytes到KB,MB,GB,TB单位智能转换的静态扩展方法
|