在C#中使用byVal .....有点复杂

时间:2012-08-20 02:06:12

标签: c# vb.net

在VB中

   Protected Overridable ReadOnly Property AuthorizationHeaderValue(ByVal signature As       String) As String
Get
    Return String.Format("{0} {1}:{2}", AuthorizationHeaderSignaturePrefix, APIIdentifier, signature)
End Get
End Property

我在C#中有什么:

    protected virtual string AuthorizationHeaderValue
    {
        get { return string.Format("{0} {1}:{2}", AuthorizationHeaderSignaturePrefix, APIIdentifier, signature); }
    }

我在C#中收到此错误:

  

当前上下文中不存在“签名”这个名称......

对我而言似乎是显而易见的,因为当我转换代码时,它会删除(ByVal signature as String)。

想法?

1 个答案:

答案 0 :(得分:3)

C#代码的问题在于属性主体需要变量 signature ,但是您没有定义具有该名称的变量。

C#不允许属性具有VB.Net所具有的参数(每个类只有一个indexer)。考虑将其转换为方法。

protected virtual string AuthorizationHeaderValue(string signature)
{
    return string.Format("{0} {1}:{2}", AuthorizationHeaderSignaturePrefix, 
          APIIdentifier, signature);
}