c# - 忽略编译器错误 BC30668:“此版本的编译器不支持具有嵌入式引用的类型”
问题描述
我正在使用 Visual Studio 2019 v16.8.2,当我尝试编译用 VB.NET 编写的代码时,我在其上声明了一个函数,其名称为“ImageData”的参数是用 C# 编写的第 3 方库中的一个类,并且那个“ImageData”类公开了一个类型的公共属性System.Span
,我得到下一个编译器错误:
错误 BC30668 'ImageData' 已过时:'此版本的编译器不支持具有嵌入式引用的类型。'。
经过一番研究,这似乎是一个设计上的无意义决定:
他们已经确认这种行为是设计使然。我不明白为什么当 c# 能够定义它们时,他们不打算让仅堆栈结构在 VB 中使用。也许他们认为 ref 结构类似于不安全类型。因此,在大多数情况下,VB 开发人员可能不会急于使用这些类型。但是这个假设没有意义,因为 ref 结构不是不安全的代码。它们可以在不安全上下文之外的 C# 7.2 中定义或使用,为什么我们不能在 VB 中使用它们?
System.Span(Of T) 和 System.ReadOnlySpan(Of T) 对于关心性能和类型安全的 .NET 开发人员来说都是重要的新 API。我们在使用它们时应该感到自然,而不是看到烦人的 BC30668 编译错误。
是否有任何解决方法可以忽略此编译器错误,以便我可以在 VBNET 下编译我的代码?
解决方案
推荐阅读
- hyperledger-fabric - Hyperledger Fabric 节点 SDK 服务器部署
- android - 在下载文件夹的应用程序特定目录中重新安装时保留文件
- selenium - 使用 pyinstaller 将 .py 转换为 .exe 后,带有代理的 Selenium 脚本不起作用
- python - AttributeError:'tuple' 对象在 postgres 上没有属性 'strftime' 问题
- r - 将特征共现与重要共现进行比较
- ios - 使用 Firebase Cloud Messaging 为 iOS 应用设置“徽章”计数
- jenkins-pipeline - 作业 DSL:管道:执行詹金斯管道时无法解决类错误
- c# - 将参数传递给 Blazor 组件
- windows - 在 Windows 上运行我的 unix ffmpeg 脚本时遇到问题
- java - 如何处理客户服务中未找到的状态