【问题标题】:.Net Core Strings.Asc/Mid/Chr/Len missing even after importing Microsoft.VisualBasic.Net Core Strings.Asc/Mid/Chr/Len 即使在导入 Microsoft.VisualBasic 后也丢失
【发布时间】:2019-08-17 01:39:04
【问题描述】:

我必须将一些旧的 VB 代码(出于安全原因无法发布)移植到 C# .Net Core 应用程序中,并将Microsoft.VisualBasic 添加到我的使用中,但我仍然收到错误提示 Cannot resolve symbol Asc/Mid/Chr/Len

这些方法在.net core 中不可用吗?

我已经读过,除了使用 Microsoft.VisualBasic 包之外,这些方法确实没有替代品。

这里有什么选择吗?

【问题讨论】:

    标签: c# vb.net .net-core


    【解决方案1】:

    尝试使用框架提供给您的方法。

    Asc to Convert.ToInt32

    Chr to Convert.ToChar

    Len to String.Length

    Mid to String.Substring

    【讨论】:

    • 尝试使用这些,但它们没有按预期工作
    【解决方案2】:

    Visual Basic 运行时将随 .NET core 3 一起提供,因此这些功能将在那时起作用。

    您可以通过在预览版 SDK 中尝试来验证这一点:以下对我来说按预期工作(在 Nuget 上使用 Microsoft.VisualBasic 10.3.0 包)

    using static Microsoft.VisualBasic.Strings;
    
    class Program { 
       static void Main() { 
          Asc("Apple");
          Mid("Apple", 2, 3);
          Chr(100);
          Len("Apple");
       }
    }
    

    【讨论】:

      【解决方案3】:

      这些东西都是 VB 特有的,所以不是 .NET Core 的一部分。也不要在 VB 中使用它。 C# 开发人员从不使用它们。使用 .NET 等价物,例如Convert.ToChar 和 String.Substring。

      【讨论】:

      • 尝试使用这些,但它们没有按预期工作
      • 他们什么“没用”?您必须考虑一些细微的差异,例如 Convert.ToInt32(string) 期望整个字符串是一个数字,而 Asc(string) only looks at the first character ...(续)
      • ...Asc 也对多字节字符进行了一些计算。你可能真的需要Convert.ToInt32(char) 或只需要(int)("Apple"[0])。此外,Mid1-basedSubstring 是从 0 开始的。
      【解决方案4】:

      您需要添加对 Microsoft.Visualbasic.dll 的引用,而不仅仅是指定使用。请参阅以下帖子: [How to add reference to Microsoft.VisualBasic.dll?

      【讨论】:

      • 安装nuget包时不应该自动添加dll吗?我认为我从 nuget 安装某些东西后不必手动添加 dll
      • 尝试手动添加它(大约需要 5 秒,并且可以轻松撤消),然后查看它是否有效 - 否则我对可能的解决方案是错误的。根据我的经验,它可能会丢失依赖项。
      【解决方案5】:

      我现在(2020 年 6 月 15 日)已经尝试过了,方法可用。 1) 添加对Microsoft.VisualBasic的引用,版本10.4.0-preview.18571.3。在 10.3.0(目前最新的稳定版本)中,缺少这些方法 2)使用netstandard2.0或netstandard2.1

      【讨论】:

        猜你喜欢
        • 2018-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-23
        • 1970-01-01
        • 2022-01-13
        • 2021-06-26
        • 2021-04-25
        相关资源
        最近更新 更多