Разница между использованием конструктора StreamWriter и File.CreateText - PullRequest
4 голосов
/ 22 июля 2010

В чем разница (загрузка процессора, MSIL и т. Д.) Между:

StreamWriter sw = new StreamWriter("C:\test.txt");

и

StreamWriter sw = File.CreateText("C:\test.txt");

1 Ответ

6 голосов
/ 22 июля 2010

Не много ... (через Отражатель )

[SecuritySafeCritical]
public static StreamWriter CreateText(string path)
{
    if (path == null)
    {
        throw new ArgumentNullException("path");
    }
    return new StreamWriter(path, false);  // append=false is the default anyway
}

Для чего стоит, хотя я предпочитаю использовать File. * Фабричные методы, потому что я думаю, что они выглядят чище и более читабельнычем передача набора параметров конструктора в Stream или StreamWriter, потому что трудно вспомнить, какие перегрузки делают, если вы не смотрите на определение.

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

...