В интернете часто натыкаюсь на код с использованием StringBuilder
a, типа такого:
private string AttributesToString(FileAttributes attributes)
{
StringBuilder str = new StringBuilder(9);
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
str.Append('R');
if ((attributes & FileAttributes.Archive) == FileAttributes.Archive)
str.Append('A');
if ((attributes & FileAttributes.System) == FileAttributes.System)
str.Append('S');
if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
str.Append('H');
if ((attributes & FileAttributes.Normal) == FileAttributes.Normal)
str.Append('N');
if ((attributes & FileAttributes.Directory) == FileAttributes.Directory)
str.Append('D');
if ((attributes & FileAttributes.Offline) == FileAttributes.Offline)
str.Append('O');
if ((attributes & FileAttributes.Compressed) == FileAttributes.Compressed)
str.Append('C');
if ((attributes & FileAttributes.Temporary) == FileAttributes.Temporary)
str.Append('T');
return str.ToString();
}
если переписать так:
private string AttributesToString2(FileAttributes attributes)
{
string str = string.Empty;
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
str += "R";
if ((attributes & FileAttributes.Archive) == FileAttributes.Archive)
str += "A";
if ((attributes & FileAttributes.System) == FileAttributes.System)
str += "S";
if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
str += "H";
if ((attributes & FileAttributes.Normal) == FileAttributes.Normal)
str += "N";
if ((attributes & FileAttributes.Directory) == FileAttributes.Directory)
str += "D";
if ((attributes & FileAttributes.Offline) == FileAttributes.Offline)
str += "O";
if ((attributes & FileAttributes.Compressed) == FileAttributes.Compressed)
str += "C";
if ((attributes & FileAttributes.Temporary) == FileAttributes.Temporary)
str += "T";
return str;
}
Работает аналогично. Только быстрее, наверное
Зачем нужен этот StringBuilder
?