Это не ошибка дизайна . Любой, кто совершает это, делает что-то неправильно.
Есть три случая, когда я вижу, где вы можете столкнуться с этой проблемой:
cache={}
, и вы не должны были бы вызывать функцию с фактическим аргументом вообще. Пример в вопросе может относиться к категории 1 или 3. Нечетно, что он изменяет переданный список и возвращает его; вы должны выбрать тот или другой.
Большое спасибо, Ханс. Теперь я могу отправить команду Paper cut, используя класс Microsoft RawPrinterHelper. Я искал это решение в течение шести дней. Вот что я сделал.
string GS = Convert.ToString((char)29);
string ESC = Convert.ToString((char)27);
string COMMAND = "";
COMMAND = ESC + "@";
COMMAND += GS + "V" + (char)1;
PrintDialog pd = new PrintDialog();
pd.PrinterSettings = new PrinterSettings();
if (DialogResult.OK == pd.ShowDialog(this))
{
RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, COMMAND);
}