这个VB.NET扩展方法在SecureString上有什么问题?

时间:2016-10-23 14:44:51

标签: .net vb.net extension-methods

当我尝试编译时,以下方法导致错误,“BC30491表达式不生成值”:

<Extension()>
Public Sub FromClearString(ByRef secureString As SecureString, clearString As String)

    clearString.ToList().ForEach(Function(c) secureString.AppendChar(c))
    secureString.MakeReadOnly()

End Sub

对我来说这似乎是一个非常正常的扩展,但我不经常使用VB。它可能有什么问题?

2 个答案:

答案 0 :(得分:1)

clearString.ToList().ForEach('---> Function(c) '<--- secureString.AppendChar(c))

ForEach签名为Action(Of T).AppendChar(c)不返回任何内容

正确的方式:

clearString.ToList().ForEach(Sub(c) secureString.AppendChar(c))

答案 1 :(得分:0)

SecureString.AppendChar()方法不会产生任何值。

尝试使用此代码

For Each chr as char in clearString
SecureString.AppedChar(chr)
Next