小编Pan*_*zza的帖子

如何使用其他名称创建新的System.String类型?

我试着一步一步地描述我的问题,因为我不知道如何用正确的编程术语说出来.

当我使用System.String类型时,我执行以下操作:

  1. 声明类型: Dim Str1 as String
  2. 分配其值: Str1 = "This is a string"

我想创建一个类似于System.String类型但名称不同的新类型.例如,我想为这样的字符串创建一个UrlString类型:

  1. 声明类型: Dim Str2 as UrlString
  2. 分配其值: Str2 = "http://www.example.com"

我的问题是:如何创建UrlString类型?

原因是:我想创建UrlString类型以帮助我识别内容的值.例如,UrlString类型表示字符串是url格式,PhoneString表示字符串是电话格式,CreditCardString类型表示字符串是信用卡格式,依此类推.

更新:

谢谢Marc Gravell和GSerg.这是解决方案:

Class UrlString
    Private ReadOnly value As String

    Public Sub New(ByVal value As String)
        Me.value = value
    End Sub

    Public Shared Widening Operator CType(ByVal value As String) As UrlString
        Return New UrlString(value)
    End Operator

    Public Shared Widening Operator CType(ByVal u As UrlString) …
Run Code Online (Sandbox Code Playgroud)

.net vb.net

11
推荐指数
1
解决办法
364
查看次数

如何使用VB.NET为字符串赋值?

考虑以下代码:

    Dim S1 As String = "a"

    'this is the string in a file
    Dim StringFromFile As String = "S1=hello"

    Dim temp() As String = Split(StringFromFile, "=", -1, CompareMethod.Binary)
    'temp(0) = variable name
    'temp(1) = variable value

    'my question is: how to assign value to S1?
Run Code Online (Sandbox Code Playgroud)

我已经声明了一个名为S1的字符串.现在我想为S1分配新值.新字符串值使用以下格式存储在文件中:[变量名称] [=作为分隔符] [字符串值].在检索存储在文件中的字符串变量名称和值后,如何将值分配给S1?

注意:

temp(0) = "S1"
temp(1) = "hello"
Run Code Online (Sandbox Code Playgroud)

应该注意的是,带有数据的字符串来自一个可能会不时变化的文件!当文件发生变化时,我也希望变量也能改变.

进一步澄清

我需要一段代码,当处理像"S1 = hello"这样的字符串时,代码将首先找到一个声明的变量(即S1),然后为S1变量分配"hello"字符串."="仅作为变量名和变量值的分隔符.

更新:

我尝试使用Mathias Lykkegaard Lorenzen的EDIT 2示例,但在这一行上失败了"NullReferenceException" "Field.SetValue(Me, VariableValue)".请帮我解决问题.以下是基于Mathias Lykkegaard Lorenzen的EDIT 2示例的代码:

Public Sub Ask()
    Try
        Dim …
Run Code Online (Sandbox Code Playgroud)

.net vb.net string variable-assignment

9
推荐指数
1
解决办法
2万
查看次数

VB.NET下字符串的默认编码是什么?

我有一个关于字符串的简单问题.考虑以下代码:

Dim S1 as String = "abc"
Run Code Online (Sandbox Code Playgroud)

S1的编码是什么?是UTF-8还是取决于用户窗口的本地设置?

.net vb.net string encoding

7
推荐指数
2
解决办法
6704
查看次数

如何安全地将文件保存到磁盘而不存在窗口拒绝它的风险?

我正在开发一个winform应用程序.我想从用户那里获取输入(即用户提供用户名)并将该输入用作文件名的一部分并保存到文件中.

如何检查用户提供的用户名是否包含windows的保留字符.什么是Windows的保留字符列表?

.net vb.net windows filenames

4
推荐指数
1
解决办法
159
查看次数

使用VB.NET配置Excel com对象的正确方法?

我有以下代码(从在线教程获得).代码正在运行,但我怀疑处理Excel com对象的方式有点不合适.我们真的需要调用GC.Collect吗?或者,处理此Excel com对象的最佳方法是什么?

Public Sub t1()
    Dim oExcel As New Excel.Application
    Dim oBook As Excel.Workbook = oExcel.Workbooks.Open(TextBox2.Text)

    'select WorkSheet based on name
    Dim oWS As Excel.Worksheet = CType(oBook.Sheets("Sheet1"), Excel.Worksheet)
    Try

        oExcel.Visible = False
        'now showing the cell value
        MessageBox.Show(oWS.Range(TextBox6.Text).Text)

        oBook.Close()
        oExcel.Quit()

        releaseObject(oExcel)
        releaseObject(oBook)
        releaseObject(oWS)
    Catch ex As Exception
        MsgBox("Error: " & ex.ToString, MsgBoxStyle.Critical, "Error!")
    End Try
End Sub

Private Sub releaseObject(ByVal obj As Object)
    Try
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
        obj = Nothing
    Catch ex As Exception
        obj = Nothing
    Finally
        GC.Collect() …
Run Code Online (Sandbox Code Playgroud)

.net vb.net com excel

4
推荐指数
2
解决办法
3万
查看次数

字符串数组行为:对于使用VB.NET的字符串数组中的每个操作

我想知道在使用For Each循环时字符串数组的行为.考虑以下代码:

Dim StringArray(499) As String
'fill in each element with random string

Dim count As Int32
Dim current As String

For Each current in StringArray
    'do something with current
    count = count + 1
    If count = 10
        Exit For
    End If
Next

're-enter the StringArray again
count = 0
For Each current in StringArray
    'do something with current
    count = count + 1
    If count = 10
        Exit For
    End If
Next
Run Code Online (Sandbox Code Playgroud)

如上面的代码所示,如​​果我需要使用For Each循环两次访问StringArray,那么即使我在每个 …

.net vb.net arrays string foreach

0
推荐指数
1
解决办法
1342
查看次数