Приложение не содержит статический метод "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(); // экземпляр класса
}
}