Я нашел этот код в другом месте, но действительно хотят знать, существует ли лучший путь.
HttpWebRequest req;
HttpWebResponse resp;
try
{
req = (HttpWebRequest)WebRequest.Create("http://www.google.com");
resp = (HttpWebResponse)req.GetResponse();
if(resp.StatusCode.ToString().Equals("OK"))
{
Console.WriteLine("its connected.");
}
else
{
Console.WriteLine("its not connected.");
}
}
catch(Exception exc)
{
Console.WriteLine("its not connected.");
}
мне нравится идея способности контролировать, если соединение потеряно через событие NetworkChange, брошенное NetworkInterface. Мое приложение для использования неопытными пользователями на ноутбуках, где интернет-соединение ошибочно (часто в австралийской Необжитой местности).
Предупреждаем: я считаю, что Core Foundation не имеет истинного наследования без загруженного Objective-C, и с загруженным Objective-C вы все равно получите (незначительные) связанные с этим замедления.
Вероятно, не будет. любая документация по нему, но это возможно. Чисто точно не будет. Попробуйте просмотреть исходный код CF-Lite (ссылка для Mac OS X 10.5.7), чтобы получить представление о реализации фреймворка.
Обратите внимание, что если накладные расходы Objective-C, о которых вы упоминаете, будут накладные расходы, связанные с вызовом сообщений, существует множество способов их оптимизации (например, метод -instanceMethodForSelector:
). Скорее всего, вы потратите больше времени, пытаясь проникнуть в структуру Core Foundation, чем пытаясь оптимизировать код Objective-C для его ускорения.
Технически основных классов Foundation не существует. Это непрозрачные типы.