Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 不支持许多VB方法的可移植类库_Vb.net_Dll_Portable Class Library - Fatal编程技术网

Vb.net 不支持许多VB方法的可移植类库

Vb.net 不支持许多VB方法的可移植类库,vb.net,dll,portable-class-library,Vb.net,Dll,Portable Class Library,我正在使用VB.NETDLL,并将其转换为可移植类库。当我把所有的类都转移到PCL的新项目中后,VisualStudio开始为许多我认为仍然可以正常工作的常用VB语法抛出错误。一些例子: LCase 仪表 左 中段 错误转到0 错误 是否有可能只有一些选项或包含我需要让这些工作?所有人都认为这些方法在Microsoft.VisualBasic命名空间中。您可以将其替换为标准的: LCase=>string.ToLower() InStr=>string.IndexOf() 用常规try/c

我正在使用VB.NETDLL,并将其转换为可移植类库。当我把所有的类都转移到PCL的新项目中后,VisualStudio开始为许多我认为仍然可以正常工作的常用VB语法抛出错误。一些例子:

  • LCase
  • 仪表
  • 中段
  • 错误转到0
  • 错误

是否有可能只有一些选项或包含我需要让这些工作?

所有人都认为这些方法在Microsoft.VisualBasic命名空间中。您可以将其替换为标准的:

LCase=>string.ToLower() InStr=>string.IndexOf()

用常规try/catch替换“出错时”


致以最诚挚的问候

所有人都认为这些方法位于Microsoft.VisualBasic命名空间中。您可以将其替换为标准的:

LCase=>string.ToLower() InStr=>string.IndexOf()

用常规try/catch替换“出错时”


致以最诚挚的问候

您必须使用受支持的程序集方法(请参阅“程序集”部分)。您将能够找到不适用于您的方法的等价项(例如:SubString、ToUpper、ToLower、IndexOf等)。

您必须使用受支持的程序集方法(请参阅“程序集”部分)。您将能够找到对您不起作用的方法的等价物(例如:SubString、ToUpper、ToLower、IndexOf等)。

当使用便携设备来定位底层平台(.NET 4.0、Silverlight、Windows Phone、Xbox)时,我们不支持Microsoft.VisualBasic.dll中公开的大多数功能

相反,我们使用嵌入式运行时功能。这将传统上在Microsoft.VisualBasic.dll中可以找到的某些功能嵌入到生成的二进制文件中。支持的功能在此页面上的/vbruntime*部分下调用:

如果仅针对.NET 4.5和Windows应用商店应用程序,则您可以访问传统的Microsoft.VisualBasic.dll

作为一种解决方法,为了帮助您转向便携式,您可以定义自己的模块,将旧VB函数与.NET等效函数连接起来:

Public Module VisualBasicBridge
    Public Function LCase(value As String) As String

        Return value.ToLower()
    End Function
End Module

就错误而言,如果不提供您自己的Microsoft.VisualBasic实现并通过/vbruntime switch/msbuild属性传递该实现,我不知道有什么好的方法可以桥接该错误。

当使用portable以底层平台(.NET 4.0、Silverlight、Windows Phone、Xbox)为目标时,我们不支持Microsoft.VisualBasic.dll中公开的大多数功能

相反,我们使用嵌入式运行时功能。这将传统上在Microsoft.VisualBasic.dll中可以找到的某些功能嵌入到生成的二进制文件中。支持的功能在此页面上的/vbruntime*部分下调用:

如果仅针对.NET 4.5和Windows应用商店应用程序,则您可以访问传统的Microsoft.VisualBasic.dll

作为一种解决方法,为了帮助您转向便携式,您可以定义自己的模块,将旧VB函数与.NET等效函数连接起来:

Public Module VisualBasicBridge
    Public Function LCase(value As String) As String

        Return value.ToLower()
    End Function
End Module

就错误而言,如果不提供自己的Microsoft.VisualBasic实现并通过/vbruntime switch/msbuild属性传递该实现,我不知道有什么好方法可以桥接错误。

您可以创建这些方法,这样就不必更新大量遗留代码。其中大部分非常简单,最大的区别在于字符串函数,传统的VB函数使用基于1的索引,.Net使用0索引。举个例子,这里是重新创建的Mid函数,其行为类似于VB(此处创建的方法类似于扩展方法):

“”
''模拟传统的基于1的索引Mid函数提供的相同功能。
''' 
''' 
''' 
''' 
''' 
''' 
_
公共函数Mid(ByVal str作为字符串,ByVal startPos作为整数,ByVal length作为整数)作为字符串
返回str.Substring(startPos-1,长度)
端函数
以下是您的列表和/或常用列表中的一些:

    ''' <summary>
    ''' Extension to the Visual Basic Left function
    ''' </summary>
    ''' <param name="str"></param>
    ''' <param name="length"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <Extension()> _
    Public Function [Left](ByVal str As String, ByVal length As Integer) As String
        Return str.Substring(0, length)
    End Function

    ''' <summary>
    ''' Extension to the Visual Basic Right function
    ''' </summary>
    ''' <param name="str"></param>
    ''' <param name="length"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <Extension()> _
    Public Function [Right](ByVal str As String, ByVal length As Integer) As String
        Return str.Substring(str.Length - length, length)
    End Function

    ''' <summary>
    ''' Determines whether a string is a numeric value.  This implementation uses Decimal.TryParse to produce it's value.
    ''' </summary>
    ''' <param name="str"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <Extension()> _
    Public Function [IsNumeric](str As String) As Boolean
        Dim result As Decimal = 0
        Return Decimal.TryParse(str, result)
    End Function

    <Extension()> _
    Public Function LCase(str As String) As String
        Return str.ToLower
    End Function
“”
Visual Basic左函数的“”扩展
''' 
''' 
''' 
''' 
''' 
_
公共函数[左](ByVal str作为字符串,ByVal length作为整数)作为字符串
返回str.Substring(0,长度)
端函数
''' 
Visual Basic Right函数的“”扩展
''' 
''' 
''' 
''' 
''' 
_
公共函数[右](ByVal str作为字符串,ByVal length作为整数)作为字符串
返回str.Substring(str.Length-Length,Length)
端函数
''' 
''确定字符串是否为数值。此实现使用Decimal.TryParse生成其值。
''' 
''' 
''' 
''' 
_
公共函数[IsNumeric](str作为字符串)作为布尔值
将结果设置为十进制=0
返回Decimal.TryParse(str,result)
端函数
_
公共函数LCase(str作为字符串)作为字符串
返回托洛街
端函数

您可以创建这些方法,这样就不必更新大量遗留代码。其中大部分非常简单,最大的区别在于字符串函数,传统的VB函数使用基于1的索引,.Net使用0索引。举个例子,这里是重新创建的Mid函数,其行为类似于VB(此处创建的方法类似于扩展方法):

“”
''模拟传统的基于1的索引Mid函数提供的相同功能。
''' 
''' 
''' 
''' 
''' 
''' 
_
公共函数Mid(ByVal str作为字符串,ByVal startPos作为整数,ByVal length作为整数)作为字符串
返回str.Substring(startPos-1,长度)
端函数
以下是您的列表和/或常用列表中的一些: