“Using”语句如何从 C# 转换为 VB?

2024-01-06

例如:

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

你能告诉我更多关于using?

Edit:

正如 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

您可以在此处获取完整文档

  • http://msdn.microsoft.com/en-us/library/htd05whh(VS.80).aspx http://msdn.microsoft.com/en-us/library/htd05whh(VS.80).aspx

EDIT

如果您使用的是 VS2003 或更早版本,您将需要以下代码。 using语句直到VS 2005,.NET 2.0才被引入(参考 http://en.wikipedia.org/wiki/Visual_Basic_2005#Visual_Basic_2005_.28VB_8.0.29)。谢谢克里斯!以下相当于 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“Using”语句如何从 C# 转换为 VB? 的相关文章

随机推荐

  • 是否存在与堆内存分配相关的内存开销(例如堆中的标记)?

    特别是在 Windows 上使用最新的 Visual Studio C 编译器来考虑 C 我想知道heap执行 假设我使用的是发布编译器 并且我不关心内存碎片 打包问题 是否存在与在heap 如果是这样 每个分配大约有多少字节 会不会更大一
  • λProlog 拒绝假设推理查询?

    我怀疑 Prolog 的主要实现 teyjus 可能有点废弃软件 但 Prolog 是一个令人着迷的 Prolog 它应该让你使用高阶逻辑 假设推理和其他东西 这就是为什么我试图用它 文件 example sig sig example k
  • 使用 NSAlert 处理按下哪个按钮的正确方法是什么

    我已经添加了两个按钮NSAlert对象 目前按钮一的返回码是1001 并且按钮默认为1000 我需要有效地确定按下给定警报中的哪个按钮 而无需使用幻数 否则会变得混乱 void showErrorMessage NSString error
  • Cloudfoundry 是否支持需要更大内存的应用程序?

    我一直在使用 grails 开发一个网站并使用 Cloudfoundry 对其进行演示 Grails 和 Cloudfoundry 太棒了 在 STS 中 grails 插件和工具的支持下 它们易于使用 我的应用程序使用 MySQL Mon
  • 用 Javascript 对象替换窗口或文档对象

    有没有办法替换 窗口 或 文档 对象 我基本上想要的是提供某种 JavaScript 代理 我想防止用户在页面上获取 一些 只有一些 这很重要 DOM 元素 我所说的 用户 是指任何第三个小馅饼脚本 我可以做这个 document getE
  • VBA 正则表达式中的后向查找?

    有没有办法在 VBA 正则表达式中进行负向和正向向后查找 如果字符串以 A 开头 我不想匹配 所以我目前正在模式的开头执行 A 然后删除 match 0 的第一个字符 显然不是最好的方法 我正在使用 regExp 对象 VBA 提供前瞻 正
  • 计算移动设备实际行驶的距离[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想计算移动设备 iOS 和 Android 实际行驶的距离 我知道通过谷歌地图API 我们可以找到2个坐标之间的最佳路线距离 但我想
  • 如何对给定点之间的直线的所有像素位置进行采样?

    我正在做一个项目 其中包括画一条线 但是 最重要的是我需要在每个 X 位置上获取 Y 位置 因此 对于每个 X 我都需要一个 Y 当我缓慢绘制时 绘制一条线并获取位置效果很好 但是当我更快地移动光标时 即使绘制了线 也不会保存每个 X 的位
  • Python 中的凯撒密码函数

    我正在尝试在 Python 中创建一个简单的凯撒密码函数 该函数根据用户的输入移动字母 并在末尾创建一个最终的新字符串 唯一的问题是 最终的密文仅显示最后一个移位的字符 而不是包含所有移位字符的整个字符串 这是我的代码 plainText
  • 使用 jest 模拟 aws-sdk S3#putObject 实例方法

    对于包含以下内容的源代码 const S3 require aws sdk s3 clients const s3 new S3 s3 putObject params callback 我添加了以下模拟基于本文 https faceboo
  • 是否可以在 php 中更改 $_['http_referer'] ? [复制]

    这个问题在这里已经有答案了 可能的重复 PHP 引用重定向脚本 https stackoverflow com questions 857427 php referer redirect script 例如 我希望制作改变浏览器 http
  • 为什么android sdk中默认的proguard配置使用keep *注释*

    android sdk默认的proguard配置中有一行 keepattributes Annotation 根据 Proguard 手册 这一行等于 keepattributes RuntimeVisibleAnnotations Run
  • Excel VBA 工作表和文本框中的日期出现错误

    我住在澳大利亚 我们使用 d mm yyyy 日期格式 我正在尝试在 Excel 中使用 VBA 创建一个用户窗体 它将读取单元格 A1 并将其显示在文本框中 然后 用户可以在另一个文本框中输入日期并将该日期设置回单元格 A1 我遇到的问题
  • 用于管理推送通知的 iOS API

    这个可能性不大 但是是否有任何公共 或私有 API 允许我们读取 iOS 设备上现有的推送通知 例如 在后台运行的应用程序是否可以每隔 X 秒轮询一次系统 以确定设备是否已收到来自 Stack Exchange 应用程序的推送通知并获取其内
  • boost::program_options - 如何处理 INI 文件中具有相同名称的多个部分

    在如下配置中 有没有办法处理各个部分 我正在寻找一种以可靠的方式验证下面各个 服务器 部分的方法 basic number of servers 3 server ip 10 20 30 40 password sdfslkhf serve
  • 在 AngularJS 中对 ui.router 的解析执行 $http get 请求可以吗?

    我有以下代码 如下 它们非常适合我并且至少满足我的需要 但我对此有点怀疑 我有一种感觉 这太好了 令人难以置信 因为我正在挣扎 http的异步行为这对我使用来自的响应对象有很大帮助 http在控制器上全局请求 我只是想知道它是否是正确的方法
  • InkWell 小部件需要 Material 小部件祖先

    我在 Row 中添加 InkWell 作为小部件 但它抛出了一个错误 flutter EXCEPTION CAUGHT BY WIDGETS LIBRARY flutter The following assertion was throw
  • 在 eclipse 的 toplink 中显示生成的 SQL

    我在 eclipse 中使用 EclipseLink 库 在开发时 并部署在 TopLink 上 我需要显示生成的 sql 语句 我正在使用以下 persistence xml
  • 在 ASP.NET Razor 中格式化字符串

    我目前正在 ASP NET 中编写一个小型模板系统 以允许用户添加内容 例如 用户可以输入字符串 变量类型为字符串 topHeader x They think it s all over It is now 但是 需要进行的一项更改是能够
  • “Using”语句如何从 C# 转换为 VB?

    例如 BitmapImage bitmap new BitmapImage byte buffer GetHugeByteArray from some external source using MemoryStream stream n