0
HttpWebRequest.Create (URL)를 통해의 HttpWebRequest를 사용있다 :과 같이 사용될 수있다 이제이HttpWebRequest를 수집 이니셜 C 번호
class RequestLight
{
public HttpWebRequest WebRequestObj;
public RequestLight(string url)
{
WebRequestObj = HttpWebRequest.CreateHttp(url);
}
}
은 (Webreq 객체에 대한 객체 이니셜 라이저의 효과)
var obj = new RequestLight("http://google.com")
{ WebRequestObj = { CookieContainer = null } }.WebRequestObj;
누락 된 것이 있습니까? 아니면 원하는 효과를 얻는 가장 쉬운 방법입니까?
참고 : 원래 방법을 사용하여 정적 메서드를 통해 개체를 만든 다음 각 속성을 하나씩 할당해야합니다.
당신은 컬렉션 이니셜 라이저가 아니라 개체 이니셜 라이저를 의미합니다. 하지만 처음에는 'RequestLight'가있는 이유가 명확하지 않습니다. 왜 그냥 두 가지 진술을하지 않습니까? 'var request = HttpWebRequest.CreateHttp (url); request.CookieContainer = null; ' –
네, 객체 초기화 프로그램을 의미했습니다. 그리고 이것은 편의를위한 것입니다 (그리고 객체 이니셜 라이저는 다루기가 훨씬 깔끔합니다). 작성된 응용 프로그램 및 도구는 모두 웹 속성을 분석하므로 요청을 최적의 방법으로 초기화해야합니다. – Curtis
하나의 표현식에서 처리해야하는 상황에있는 경우 * 객체 *를 처리하기위한 객체 초기화 프로그램이 더 깨끗합니다. 그러나 일반 로컬 변수 인 경우 두 구문보다 구문이 상당히 * 덜 * 편리하다고 말할 수 있습니다. 내 대답의 제안은 다소 덜 분명하지 않지만, 나는 (그리고 더 일반적인) 생각하지만 대부분의 경우 두 문장을 여전히 사용하고있을 것이다. –