Dan*_*iel 46 .net c# vb.net visual-studio-2005 .net-2.0
例如:
BitmapImage bitmap = new BitmapImage();
byte[] buffer = GetHugeByteArray(); // from some external source
using (MemoryStream stream = new MemoryStream(buffer, false))
{
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = stream;
bitmap.EndInit();
bitmap.Freeze();
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我更多关于using什么的吗?
编辑:
正如JaredPar的帖子中所讨论的那样,这个问题更关注UsingVS2003中的实现.有人指出,Using直到.NET 2.0(VS2005)才引入.JaredPar发布了一个相同的解决方法.
Jar*_*Par 64
假设您使用的是.NET 2.0或更高版本(这意味着VB.NET v8编译器或更高版本),则在VB中使用与C#几乎相同的语法.基本上,只需删除大括号并添加"结束使用"
Dim bitmap as New BitmapImage()
Dim buffer As Byte() = GetHugeByteArrayFromExternalSource()
Using stream As New MemoryStream(buffer, false)
bitmap.BeginInit()
bitmap.CacheOption = BitmapCacheOption.OnLoad
bitmap.StreamSource = stream
bitmap.EndInit()
bitmap.Freeze()
End Using
Run Code Online (Sandbox Code Playgroud)
您可以在此处获取完整的文档
编辑
如果您使用的是VS2003或更早版本,则需要以下代码.直到VS 2005,.NET 2.0(参考)才引入using语句.谢谢克里斯!以下等同于using语句.
Dim bitmap as New BitmapImage()
Dim buffer As Byte() = GetHugeByteArrayFromExternalSource()
Dim stream As New MemoryStream(buffer, false)
Try
bitmap.BeginInit()
bitmap.CacheOption = BitmapCacheOption.OnLoad
bitmap.StreamSource = stream
bitmap.EndInit()
bitmap.Freeze()
Finally
DirectCast(stream, IDisposable).Dispose()
End Try
Run Code Online (Sandbox Code Playgroud)
重要的是要指出,使用实际上编译成各种代码行,类似于锁等.
来自C#语言规范....表单的using语句
using (ResourceType resource = expression) statement
Run Code Online (Sandbox Code Playgroud)
对应于两种可能的扩展之一.何时ResourceType是值类型,扩展为
{
ResourceType resource = expression;
try {
statement;
}
finally {
((IDisposable)resource).Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
否则,当ResourceType是引用类型时,扩展为
{
ResourceType resource = expression;
try {
statement;
}
finally {
if (resource != null) ((IDisposable)resource).Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
(结束语言规范片段)
基本上,在编译时它将转换为该代码.没有方法叫做使用等.我试图在vb.net语言规范中找到类似的东西,但我找不到任何东西,大概它完全一样.
| 归档时间: |
|
| 查看次数: |
64419 次 |
| 最近记录: |