Подтвердить что ты не робот

Большинство полезных разработчиков .NET-классов, как правило, изобретают, а не повторно используют

Недавно я прочитал этот пост Фила Хаака (Наиболее полезные .NET-классы, разработчики классов склонны к повторному использованию, а не повторному использованию) с прошлого года, и подумал, что я увижу, есть ли у кого-нибудь дополнения к списку.

4b9b3361

Ответ 1

Люди склонны использовать следующее, которое является уродливым и связано с отказом:

string path = basePath + "\\" + fileName;

Лучше и безопаснее:

string path = Path.Combine(basePath, fileName);

Также я видел, как люди пишут собственный метод для чтения всех байтов из файла. Это очень удобно:

byte[] fileData = File.ReadAllBytes(path); // use path from Path.Combine

Как отметил TheXenocide, то же самое относится к File.ReadAllText() и File.ReadAllLines()

Ответ 2

String.IsNullOrEmpty()

Ответ 3

Path.GetFileNameWithoutExtension(string path)

Возвращает имя файла указанной строки пути без расширения.

Path.GetTempFileName()

Создает одноименный, нулевой байтовый временный файл на диске и возвращает полный путь к этому файлу.

Ответ 4

Класс System.Diagnostics.Stopwatch.

Ответ 5

String.Format.

Сколько раз я видел

return "£" & iSomeValue

а не

return String.Format ("{0:c}", iSomeValue)

или люди, добавляющие процентные знаки - такие вещи.

Ответ 6

Enum.Parse()

Ответ 7

Попытка выяснить, где находятся Мои документы на компьютере пользователя. Просто используйте следующее:

string directory =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

Ответ 8

Мне нужно было скачать некоторые файлы в последнее время в приложении Windows. Я нашел метод DownloadFile для объекта WebClient:

    WebClient wc = new WebClient();
    wc.DownloadFile(sourceURLAddress, destFileName);

Ответ 9

String.Join() (однако почти все знают о string.Split и, кажется, используют его каждый шанс, который они получают...)

Ответ 10

Жесткое кодирование a/в строку манипулирования каталогом по сравнению с использованием:

IO.Path.DirectorySeparatorChar

Ответ 12

Environment.NewLine

Ответ 13

Вместо генерации имени файла с помощью Guid просто используйте:

Path.GetRandomFileName()

Ответ 14

Множество новых функций Linq кажется довольно неизвестным:

Any<T>() & All<T>()

if( myCollection.Any( x => x.IsSomething ) )
    //...

bool allValid = myCollection.All( 
    x => x.IsValid );

ToList<T>(), ToArray<T>(), ToDictionary<T>()

var newDict = myCollection.ToDictionary(
    x => x.Name,
    x => x.Value );

First<T>(), FirstOrDefault<T>()

return dbAccessor.GetFromTable( id ).
    FirstOrDefault();

Where<T>()

//instead of
foreach( Type item in myCollection )
    if( item.IsValid )
         //do stuff

//you can also do
foreach( var item in myCollection.Where( x => x.IsValid ) )
    //do stuff

//note only a simple sample - the logic could be a lot more complex

Все очень полезные функции, которые можно использовать вне синтаксиса Linq.

Ответ 16

System.Text.RegularExpressions.Regex

Ответ 17

input.StartsWith("stuff") вместо Regex.IsMatch(input, @"^stuff")

Ответ 19

Для всего, что скрывается в пространстве имен Microsoft.VisualBasic, TextFieldParser на самом деле является очень приятным парсером csv. Я вижу, что многие люди либо откатывают свои собственные (плохо), либо используют что-то вроде красивой библиотеки Fast CSV на Code Plex, даже не зная, что это уже запеченные в рамках.

Ответ 20

Файл.

using System.IO;

File.Exists(FileNamePath)

Directory.Exists(strDirPath)

File.Move(currentLocation, newLocation);

File.Delete(fileToDelete);

Directory.CreateDirectory(directory)

System.IO.FileStream file = System.IO.File.Create(fullFilePath);

Ответ 21

System.IO.File.ReadAllText против написания логики с использованием StreamReader для небольших файлов.

System.IO.File.WriteAllText против написания логики с использованием StreamWriter для небольших файлов.

Ответ 22

Кажется, что многим нравится переходить через XML файл вручную, чтобы найти что-то, а не использовать XPathNaviagator.

Ответ 23

Большинство людей забывают, что Directory.CreateDirectory() изящно деградирует, если папка уже существует, и оберните ее бессмысленным вызовом if (! Directory.Exists(....)).

Ответ 24

myString.Equals(anotherString)

и варианты, включая специфические для культуры.

Я уверен, что по крайней мере 50% разработчиков пишут что-то вроде: if (s == "id" ) {...}

Ответ 25

Path.Append всегда забывается в том, что я видел.