繁体   English   中英

用户控制VB.Net脚本转换为C#

[英]User Control VB.Net script Conversion to C#

<script language="VB" runat="server">
    Public Data As String = "" 
    Public Height As Byte = 25
    Public WidthMultiplier As Byte = 1

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim dictEncoding As StringDictionary
        Dim sbBarcodeImgs As StringBuilder

        Dim strEncodedData As String
        Dim I As Integer

        dictEncoding = New StringDictionary()
        dictEncoding.Add("0", "101001101101")
        dictEncoding.Add("1", "110100101011")
        dictEncoding.Add("2", "101100101011")
        dictEncoding.Add("3", "110110010101")
        dictEncoding.Add("4", "101001101011")
        dictEncoding.Add("5", "110100110101")
        dictEncoding.Add("6", "101100110101")
        dictEncoding.Add("7", "101001011011")
        dictEncoding.Add("8", "110100101101")
        dictEncoding.Add("9", "101100101101")
        dictEncoding.Add("A", "110101001011")
        dictEncoding.Add("B", "101101001011")
        dictEncoding.Add("C", "110110100101")
        dictEncoding.Add("D", "101011001011")
        dictEncoding.Add("E", "110101100101")
        dictEncoding.Add("F", "101101100101")
        dictEncoding.Add("G", "101010011011")
        dictEncoding.Add("H", "110101001101")
        dictEncoding.Add("I", "101101001101")
        dictEncoding.Add("J", "101011001101")
        dictEncoding.Add("K", "110101010011")
        dictEncoding.Add("L", "101101010011")
        dictEncoding.Add("M", "110110101001")
        dictEncoding.Add("N", "101011010011")
        dictEncoding.Add("O", "110101101001")
        dictEncoding.Add("P", "101101101001")
        dictEncoding.Add("Q", "101010110011")
        dictEncoding.Add("R", "110101011001")
        dictEncoding.Add("S", "101101011001")
        dictEncoding.Add("T", "101011011001")
        dictEncoding.Add("U", "110010101011")
        dictEncoding.Add("V", "100110101011")
        dictEncoding.Add("W", "110011010101")
        dictEncoding.Add("X", "100101101011")
        dictEncoding.Add("Y", "110010110101")
        dictEncoding.Add("Z", "100110110101")
        dictEncoding.Add("-", "100101011011")
        dictEncoding.Add(":", "110010101101")
        dictEncoding.Add(" ", "100110101101")
        dictEncoding.Add("$", "100100100101")
        dictEncoding.Add("/", "100100101001")
        dictEncoding.Add("+", "100101001001")
        dictEncoding.Add("%", "101001001001")
        dictEncoding.Add("*", "100101101101")


        strEncodedData = dictEncoding("*") & "0"
        For I = 1 To Len(Data)
            strEncodedData = strEncodedData & dictEncoding(Mid(Data, I, 1)) & "0"
        Next I
        strEncodedData = strEncodedData & dictEncoding("*")




        sbBarcodeImgs = New StringBuilder()
        For I = 1 To Len(strEncodedData)
            If Mid(strEncodedData, I, 1) = "1" Then
                sbBarcodeImgs.Append("<img src=""images/bar_blk.gif"" width=""" & WidthMultiplier & """ height=""" & Height & """ />")
            Else
                sbBarcodeImgs.Append("<img src=""images/bar_wht.gif"" width=""" & WidthMultiplier & """ height=""" & Height & """ />")
            End If
        Next I

        litBarcode.Text = sbBarcodeImgs.ToString
    End Sub
</script>
<asp:Literal ID="litBarcode" runat="server" />

首先,我对MID和字典的用法不熟悉。 可以将其完全转换为C#吗?

StringDictionary只是另一个集合类,因此没有问题。 如果您愿意将Visual Basic库导入到C#应用程序(没什么不好的话Microsoft.VisualBasic.Mid() Mid仍可以用作Microsoft.VisualBasic.Mid() ,或者可以很容易地重写它。

编辑:实际上,VB.Net代码似乎只是使用Mid以同样的方式,你可以使用String.Substring所以甚至不需要使用Visual Basic库。 (我想到VB6中的Mid可能是函数或语句,该函数类似于String.Substring,但是如果是语句,则没有真正简单的方法可以复制它,但是无论哪种方式都无关紧要码)。

您是否尝试过使用Telerik Converter 我在那儿跑了你的东西,没有任何错误。

是。 使用此处提到的一种转换器工具; 虽然只运行代码,但不运行标记部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM