나는 앤디 흔들기에 의해 게시물에서이 코드를 적용 (그냥 "어떤 남자"아니다 - 그는 MS 보도에 대해 "MS .NET Compact Framework에서"를 썼다 공동) :왜 WebRequest/HttpWebRequest 객체에 캐스트가 필요하고 다른 시간이 필요하지 않습니까?
WebRequest request = HttpWebRequest.Create(uri);
request.Method = Enum.ToObject(typeof(HttpMethods), method).ToString();
request.ContentType = contentType;
((HttpWebRequest)request).Accept = contentType;
((HttpWebRequest)request).KeepAlive = false;
((HttpWebRequest)request).ProtocolVersion = HttpVersion.Version10;
if (method != HttpMethods.GET && method != HttpMethods.DELETE)
{
Encoding encoding = Encoding.UTF8;
request.ContentLength = encoding.GetByteCount(data);
//request.ContentType = contentType; <= redundant; set above
request.GetRequestStream().Write(
encoding.GetBytes(data), 0, (int)request.ContentLength);
request.GetRequestStream().Close();
}
참고 어떻게 처음에 내가 요청한 것을 HttpWebRequest로 캐스팅해야했던 코드 블록; 조건부 내에서, 주조는 불필요합니다. 차이점은 무엇입니까? 대신 "WebRequest"가 "HttpWebRequest"여야합니까? 그렇게하면 주조물이 회색으로 표시되어 불필요하다는 것을 알 수 있습니다. 그러나 Wiggly가 이유 때문에 그런 작업을 수행 했음에 틀림 없습니다. 왜 주조가 조건부 블록에서 왜 제거 되었습니까?