Приложение не содержит статический метод "Main", подходящий для точки входа - C#
Формулировка задачи:
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ip_ca
- {
- class iputils
- {
- public string ipstr;
- public string ipmin;
- public string ipmax;
- public int ipvlen = 32;
- private byte[] dv = { 128, 64, 32, 16, 8, 4, 2, 1 };
- public iputils(string ip)
- {
- ipstr = ip;
- ipmin = " "; ipmax = " ";
- calculate();
- }
- private void calculate()
- {
- string strbinip = "", bstr_min = "", bstr_max = "";
- string[] ip_arr = ipstr.Split('/');
- string ip = ip_arr[0];
- int m = (ip_arr.Length == 2) ? Convert.ToInt32(ip_arr[1]) : 0;
- string[] ip_part = ip.Split('.');
- foreach (string part in ip_part)
- {
- strbinip += ByteToBinaryString(Convert.ToByte(part));
- }
- while (strbinip.Length < ipvlen) strbinip += "0";
- bstr_min = (m > 0) ? strbinip.Substring(0, m) : strbinip;
- while (bstr_min.Length < ipvlen) bstr_min += "0";
- bstr_max = (m > 0) ? strbinip.Substring(0, m) : strbinip;
- while (bstr_max.Length < ipvlen) bstr_max += "1";
- // минимальный адрес диапазона
- ipmin = BinaryStringToIP(bstr_min);
- // максимальный адрес диапазона
- ipmax = BinaryStringToIP(bstr_max);
- }
- // преобразование двоичной строки в IP адрес
- string BinaryStringToIP(string bstr)
- {
- string rc = "";
- string[] sip = { "", "", "", "" };
- if (bstr.Length == ipvlen)
- {
- for (int i = 0, j = 0; i < ipvlen; i += 8)
- {
- sip[j++] = Convert.ToString(BinaryStringToByte(bstr.Substring(i, 8)));
- }
- }
- rc = String.Join(".", sip);
- return rc;
- }
- // преобразование байта в двоичную строку
- string ByteToBinaryString(byte ipi)
- {
- string rc = "";
- ipi = Convert.ToByte(ipi);
- for (int i = 0; i < dv.Length; i++)
- {
- if (ipi >= dv[i])
- {
- rc += "1";
- ipi -= dv[i];
- }
- else
- {
- rc += "0";
- }
- }
- return rc;
- }
- // преобразование двоичной строки в байт
- // строка состоит из 0 и 1
- // напомним, что в байте 8 бит
- byte BinaryStringToByte(string eight)
- {
- byte rc = 0; // return code // возвращаемое значение
- // дополняем переменную eight ноликами до размера 8 символов
- // нолики вставляем слева!
- while (eight.Length < 8) eight.Insert(0, "0");
- // проходим по символам переменной eight
- // для каждого символа eight[i] равного 1
- // берём значение из массива dv[i] и суммируем его в переменную rc.
- for (int i = 0; i < dv.Length; i++)
- {
- if (eight[i] == '1')
- {
- rc += dv[i];
- }
- }
- return rc;
- }
- public string getMaxIP()
- {
- return ipmax;
- }
- public string getMinIP()
- {
- return ipmin;
- }
- public string getIPArea()
- {
- return ipmin + "-" + ipmax;
- }
- }
- }
Решение задачи: «Приложение не содержит статический метод "Main", подходящий для точки входа»
textual
Листинг программы
- class Program
- {
- static void main()
- {
- iputils x = new iputils(); // экземпляр класса
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д