перегрузка оператора ввода

266
16 мая 2017, 01:06

Как можно реализовать нижеуказанный код на C#. Пример кода на C++:

// перегруженный оператор ввода, для ввода значений массива с клавиатуры
istream &operator>> (istream & input, Array &obj)
{
    for (int ix = 0; ix < obj.size; ix++)
        input >> obj.ptr[ix]; // заполняем массив объекта obj
    return input; // позволяет множественный ввод, типа cin >> x >> y >> z >> ...
}
Answer 1

Имхо, самое близкое, что можно придумать, сделать метод расширения наподобие такого:

public static TextReader Input(this TextReader input, string[] arr)
{
    for (int i = 0; i < arr.Length; i++)
        arr[i] = input.ReadLine();
    return input;
}

Теперь можно писать так:

var arr1 = new string[3];
var arr2 = new string[2];
using (var reader = new StreamReader("test.txt"))
{
    // Множественный ввод
    reader.Input(arr1).Input(arr2);
}
// Ввод из консоли
Console.In.Input(arr1);

При желании, можно сделать Split вводимых строк по пробелу и пр.

READ ALSO
C# ASP,NET WebForms Заполнение полей html формы

C# ASP,NET WebForms Заполнение полей html формы

Есть ли какая то возможность инициализировать значение полей стандартных HTML-контролов из C# кода в момент загрузки страницы?

376
Как сериализовать List&lt;T&gt; в xml

Как сериализовать List<T> в xml

Есть класс DB, который я хочу сериализовать в xml

234
Работа с регулярными выражениями PHP

Работа с регулярными выражениями PHP

Есть текст, нужно все URL выделить красным и добавить перед ними <ahref="URL"URL</a>, а если там есть человекочитаемая, то <ahref="URL"URL;человекочитаемая</a>

304