I am trying to get my head around some of my predecessors code who, helpfully, has used 'var' to declare everything.
I have a using statement which is below:
using (var postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
When I put a breakpoint here, postStream shows up in the Autos window as System.Net.ConnectStream. Instead of 'var' I want to use 'ConnectStream' but the compiler doesn't like this.
What am I missing, why can't I write my code like this:
using (ConnectStream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
I know this is trivial but I was always taught not to use 'var' unless you have a specific reason to do so (such as when dealing with LINQ). Am I wrong?
ConnectStream
is an internal class, you can't use it explicitly. But it doesn't matter, because you don't need to know that its actual type isConnectStream
: all you need to know is that it's aStream
(the return type declared byGetRequestStream
), the actual implementation doesn't really matter.If you want to specify the type explicitly, just write it like this:
(but it has exactly the same meaning as using
var
)