我试图让我的一些前任代码有所帮助,这些代码有用地使用了'var'来声明所有内容。
我有一个using语句,如下所示:
using (var postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
当我在此处放置断点时,postStream在Autos窗口中显示为System.Net.ConnectStream。我想使用“ ConnectStream”代替“ var”,但是编译器不喜欢这样。
我缺少什么,为什么不能这样编写代码:
using (ConnectStream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
我知道这很简单,但是总是教我不要使用“ var”,除非您有特定的理由(例如在处理LINQ时)。我错了吗?
最佳答案
ConnectStream
是一个内部类,您不能显式使用它。但这没关系,因为您不需要知道其实际类型是ConnectStream
:您只需知道它是Stream
(由GetRequestStream
声明的返回类型),即实际实现并不重要。
如果要显式指定类型,则可以这样编写:
using (Stream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
(但其含义与使用
var
完全相同)