0

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ます。

アイデア?

4

1 に答える 1

3

C# コードの問題は、プロパティ本体が変数の署名を期待しているのに、その名前の変数を定義していないことです。

C# では、VB.Net のようにプロパティにパラメーターを指定することはできません (クラスごとに 1 つのインデクサーを除く)。メソッドに変換することを検討してください。

protected virtual string AuthorizationHeaderValue(string signature)
{
    return string.Format("{0} {1}:{2}", AuthorizationHeaderSignaturePrefix, 
          APIIdentifier, signature);
}
于 2012-08-20T02:09:24.940 に答える