gpt4 book ai didi

c# - "Using"语句如何从 C# 转换为 VB?

转载 作者:IT王子 更新时间:2023-10-29 03:53:55 24 4
gpt4 key购买 nike

例如:

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();
}

你能告诉我更多关于使用的信息吗?

编辑:

正如在 JaredPar 的帖子的评论中所讨论的,这个问题更关心的是 Using 在 VS2003 中的实现。有人指出 Using 直到 .NET 2.0 (VS2005) 才被引入。 JaredPar 发布了等效的解决方法。

最佳答案

假设您使用的是 .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

你可以在这里得到完整的文档

编辑

如果您使用的是 VS2003 或更早版本,则需要以下代码。直到 VS 2005,.NET 2.0 ( reference ) 才引入 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

关于c# - "Using"语句如何从 C# 转换为 VB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com