#c_sharp #оптимизация
Встал передо мной вопрос об оптимизации своего кода. у меня много подобных строчек GenerateCar(car2, bestWay); GettingBest(moneyChange, car2, propuski, bestWay); GenerateCar(car3, bestWay); GettingBest(moneyChange, car3, propuski, bestWay); GenerateCar(car4, bestWay); GettingBest(moneyChange, car4, propuski, bestWay); Я невероятно хочу запихнуть это дело в цикл и написать GenerateCar(car+i, bestWay),но видимо так не принято в С#.В этой и вопрос,как это делается? и второй вопрос,про конструкторы. int[] car0 = {0,0,0,0,0,0,0,0,0,0}; int[] car1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] car2 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] car3 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] car4 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] car5 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] car6 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] car7 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] car8 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int[] car9 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; это режет глаза.) конструктор ругается от такого кода: class Car { int[] massivchik; public Car() { this.massivchik = massivchik; } } не работает,в общем подскажите а как бы вы заменили эти тексты с массивами?
Ответы
Ответ 1
Заместо кучи массивов carN вам было бы неплохо завести список массивов cars: // объявление Listcars = new List (); // инициализация for (int i = 0; i < количествоМашин; i++) cars.Add(new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); // генерация for (int i = 0; i < количествоМашин; i++) { GenerateCar(cars[i], bestWay); GettingBest(moneyChange, cars[i], propuski, bestWay); } "Компилятор ругается от такого кода:" - правильно ругается, ведь вы пытаетесь приравнять неинициализированное поле класса к самому себе. class Car { int[] massivchik; public Car() { // в этот момент времени massivchik = null this.massivchik = massivchik; } } Конструктор надо переделать в один из двух вариантов: public Car() { array = new int[заранееИзвестнаяПостояннаяДлинаМассива]; } либо public Car(int[] array) { this.array = array; } И да, пожалуйста, переименуйте переменные в что-нибудь достойное. :) Приятно, конечно, что сейчас они носят исконно-русские названия, но вы же не на ЯП 1С пишете. Ответ 2
Ваш код можно переписать вот так var cars = Enumerable.Range(0, 10) .Select(x=>Enumerable.Range(0,10) .ToArray()) .ToArray(); foreach(var car in cars) { GenerateCar(car, bestWay); GettingBest(moneyChange, car, propuski, bestWay); }
Комментариев нет:
Отправить комментарий