gpt4 book ai didi

c# - VB 2008 程序集中的扩展方法不能在 C# 项目中使用?

转载 作者:行者123 更新时间:2023-11-30 12:15:58 24 4
gpt4 key购买 nike

我在 VB 程序集中编写了一些字符串扩展方法,并在 C# 项目中对它们进行了单元测试。但是,C# 就像它看不到扩展方法一样,当其他 VB 项目引用 VB 程序集时,它们没有问题。 VB 程序集和 C# 测试项目都针对 .Net 3.5。

有解决办法吗?


VB.Net扩展方法:

Imports System.Runtime.CompilerServices
Imports System.Text.RegularExpressions
Imports System.Linq

Namespace ExtensionMethods
Module StringExtensions

<Extension()> _
Public Function Remove( _
ByVal input As String, _
ByVal subStrings As String()) As String
...
End Function

<Extension()> _
Public Function Substrings( _
ByVal input As String, _
ByVal regexPattern As String, _
ByVal regexOptions As RegexOptions) As IEnumerable(Of String)
...
End Function

<Extension()> _
Public Function Substrings( _
ByVal input As String, _
ByVal regexPattern As String) As IEnumerable(Of String)
...
End Function
End Module
End Namespace

VB.Net 用法:

Imports SomeNamespace.ExtensionMethods
...
someString = someString.Remove(subStringsToRemove)

C# 用法(不起作用):

using SomeNamespace.ExtensionMethods;               //No error, but ExtensionMethods is not in the intellisense
...
someString = someString.Remove(subStringsToRemove); //error, can't find matching overlaod

最佳答案

试图将模块设置为“公开”?

更新:

无法解释为什么它可以与其他 VB 程序集一起使用。认为 C# 对类访问修饰符或其他东西有自己的看法。

关于c# - VB 2008 程序集中的扩展方法不能在 C# 项目中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206390/

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