我不明白这段代码在做什么?

时间:2019-07-18 14:54:25

标签: vb.net

我有一个古老的项目被交给了我。它位于componentDidUpdate(prevProps){ if(prevProps.items.length !== this.props.items.length) this.setState({items: this.props.items}) } 中,必须转换为vb.net。在将其转换为c#之前,必须了解该代码各部分的功能。我可耻地承认我完全迷路了。希望对c#更有经验的人可以用简单的英语解释来细分每个部分。一旦有了更好的理解,就可以在vb.net中重新创建它(希望如此)。

c#

在这一点上,我可以看到我们已经声明了一些变量,但是此后我有点迷路了。我不确定IndexOf在做什么。或Substring(InStrRev。。正在做什么。

 Public Function GenerateFileName(strFolderPath As String) As String
     Dim strNewFileName As String
     Dim strContactFiles() As String
     Dim strContactFile As String
     Dim strNextFileCtrName As String
     Dim strCounter As String
     Dim lngCounter As String

     strContactFiles = Directory.GetFiles(strFolderPath, "*.nxt", SearchOption.AllDirectories)
     strContactFile = strContactFiles(0).Substring(0, strContactFiles(0).IndexOf("."))
     strNextFileCtrName = strContactFile
     strContactFile = strContactFile.Substring(InStrRev(strContactFile, "\"))
     strCounter = strContactFile ' use to increment the next file when complete
     strContactFile = StrReverse(strContactFile)

我不知道上面在做什么?

    Dim bin As New Text.StringBuilder
    For Each ch As Char In strContactFile ' convert to binary character by character
        bin.Append(Convert.ToString(Convert.ToInt32(ch, 16), 2).PadLeft(4, "0"c))
    Next

    strContactFile = bin.ToString
    strContactFile = StrReverse(strContactFile)

我知道这行:)

 strNewFileName = ""

在上面的代码中,好像我们要转换为十六进制,然后反转字符串?并添加文件扩展名.vcf ??

    For i As Integer = 0 To 7 
        strNewFileName = strNewFileName & Hex(Convert.ToInt32(strContactFile.Substring(i * 4, 4), 2))
    Next
    strNewFileName = StrReverse(strNewFileName)

    strNewFileName = strNewFileName & ".vcf"

在这里看起来好像正在进行某种增量和重命名,但是我并没有完全遵循。

我正在寻求帮助,以一种非常简单的方式来理解(外行的术语)这些代码行的确切作用。直到我完全了解他们在做什么。 。 。我将无法重写它。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我试图将这段代码转换为C#,但这仍然毫无意义。如果文件名不是数字字符串,它将左右吹响。我希望这种转换对您有所帮助。

yum install python36-pyOpenSSL