Можно ли оптимизировать приведенный код - C#
Формулировка задачи:
Понимаю, что нужно создать ещё одно измерение массива, но боюсь, что я уже и в этом запутался.
Листинг программы
- ...
- byte[] mac10 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xFA, 0xD5 }; //30-85-A9-A0-FA-D5
- byte[] mac1 = new byte[] { 0xC8, 0x60, 0x00, 0xC5, 0xC1, 0xDF }; //C8-60-00-C5-C1-DF
- byte[] mac2 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1D }; //30-85-A9-A0-DF-1D
- byte[] mac3 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1E }; //30-85-A9-A0-DF-1E
- byte[] mac4 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x2E }; //30-85-A9-A0-DF-2E
- byte[] mac5 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x21 }; //30-85-A9-A0-FA-21
- byte[] mac6 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1C }; //30-85-A9-A0-FA-1C
- byte[] mac7 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x28 }; //30-85-A9-A0-FA-28
- byte[] mac8 = new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x20 }; //30-85-A9-A0-FA-20
- ...
- private void button1_Click(object sender, EventArgs e)
- {
- UdpClient client = new UdpClient();
- client.Connect(IPAddress.Broadcast, 40000);
- byte[] packet10 = new byte[17 * 6];
- byte[] packet1 = new byte[17 * 6];
- byte[] packet2 = new byte[17 * 6];
- byte[] packet3 = new byte[17 * 6];
- byte[] packet4 = new byte[17 * 6];
- byte[] packet5 = new byte[17 * 6];
- byte[] packet6 = new byte[17 * 6];
- byte[] packet7 = new byte[17 * 6];
- byte[] packet8 = new byte[17 * 6];
- for (int i = 0; i < 6; i++)
- {
- packet10[i] = 0xFF;
- packet1[i] = 0xFF;
- packet2[i] = 0xFF;
- packet3[i] = 0xFF;
- packet4[i] = 0xFF;
- packet5[i] = 0xFF;
- packet6[i] = 0xFF;
- packet7[i] = 0xFF;
- packet8[i] = 0xFF;
- }
- for (int i = 1; i <= 16; i++)
- for (int j = 0; j < 6; j++)
- {
- packet10[i * 6 + j] = mac10[j];
- packet1[i * 6 + j] = mac1[j];
- packet2[i * 6 + j] = mac2[j];
- packet3[i * 6 + j] = mac3[j];
- packet4[i * 6 + j] = mac4[j];
- packet5[i * 6 + j] = mac5[j];
- packet6[i * 6 + j] = mac6[j];
- packet7[i * 6 + j] = mac7[j];
- packet8[i * 6 + j] = mac8[j];
- }
- client.Send(packet10, packet10.Length);
- client.Send(packet1, packet10.Length);
- client.Send(packet2, packet10.Length);
- client.Send(packet3, packet10.Length);
- client.Send(packet4, packet10.Length);
- client.Send(packet5, packet10.Length);
- client.Send(packet6, packet10.Length);
- client.Send(packet7, packet10.Length);
- client.Send(packet8, packet10.Length);
- }
Решение задачи: «Можно ли оптимизировать приведенный код»
textual
Листинг программы
- byte[][] macs = new byte[9][] {
- new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xFA, 0xD5 }, //30-85-A9-A0-FA-D5
- new byte[] { 0xC8, 0x60, 0x00, 0xC5, 0xC1, 0xDF }, //C8-60-00-C5-C1-DF
- new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1D }, //30-85-A9-A0-DF-1D
- new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1E }, //30-85-A9-A0-DF-1E
- new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x2E }, //30-85-A9-A0-DF-2E
- new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x21 }, //30-85-A9-A0-FA-21
- new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x1C }, //30-85-A9-A0-FA-1C
- new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x28 }, //30-85-A9-A0-FA-28
- new byte[] { 0x30, 0x85, 0xA9, 0xA0, 0xDF, 0x20 }, //30-85-A9-A0-FA-20
- };
- byte[][] packets = new byte[9][];
- for (int i = 0; i < 9; i++)
- {
- packets[i] = new byte[17 * 6];
- for (int j = 0; j < 6; j++)
- {
- packets[i][j] = 0xFF;
- }
- }
- for (int i = 0; i < 9; i++)
- {
- for (int j = 1; j <= 16; j++)
- {
- for (int k = 0; k < 6; k++)
- {
- packets[i][j * 6 + k] = macs[i][k];
- }
- }
- }
- UdpClient client = new UdpClient();
- for (int l = 0; l < 9; l++)
- {
- client.Send(packets[l], packets[l].Length);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д