У меня есть следующий код:Почему «! =» Нельзя сравнивать с длинным?
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
. . .
if (null != request.UserAgent)
{
str = String.Format("userAgent == {0}", request.UserAgent.ToString());
MessageBox.Show(str);
}
. . . // many other similar ones, comparing null to string, etc. types
Но это одна:
if (null != request.ContentLength)
{
str = String.Format("contentLength == {0}", request.ContentLength.ToString());
MessageBox.Show(str);
}
... терпит неудачу с компиляции ошибка "оператора не может быть применен„=!“ к операндам типа «» и «длинный» "
я могу добавить в ToString(), чтобы получить его скомпилировать:
if (null != request.ContentLength.ToString())
. . .
... но это кажется странным. Почему HttpWebRequest ContentLength (длинный) несравнимо с нулевым?
долго не может быть пустым. У вас должен быть длинный?/Nullable, чтобы он даже получил нулевое значение. –
Почему? Что делает таким образом отличным от других типов данных таким образом? –
int, long, double, float и т. Д. Могут быть пустыми, поскольку они не являются нулевыми типами, потому что они являются типами значений. –