as
operator jest w rzeczywistości C# równoważne:
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
Debug.Assert(request != null); // request will be null if the cast fails
Jednak regularny obsada jest prawdopodobnie preferowane:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
WebRequest.Create
zawsze powinny skutkować HttpWebRequest gdy wywołana z określonego schematu URI. Jeśli nie ma nic przydatnego, gdy gra się nie powiedzie, nie ma potrzeby defensywnego rzucania zmiennej. Jeśli nie zależy Ci na używanym protokole, zmienna request
powinna być typu WebRequest
(ale stracisz możliwość sprawdzania kodów statusu HTTP).
Aby ukończyć obraz o rzutach i sprawdzaniu typów w języku C#, możesz również przeczytać na stronie is
operator.
Kiedy mówisz, że to nie działa, co masz na myśli? Otrzymujesz błąd? Nie można skompilować? Zwraca wartość null? Czy możesz wyjaśnić? – spinon