2009-05-20 23 views
1

我讀這段代碼sampleBase64ToHex()的代碼示例

而且因爲我不知道C#,我決定搏一搏。

在編譯時,我得到這個消息:

Main.cs(32,65): error CS1061: Type `string' does not contain a definition for `Base64ToHex' and no extension method `Base64ToHex' of type `string' could be found (are you missing a using directive or an assembly reference?) 
Compilation failed: 1 error(s), 0 warnings 

我在MSDN外觀和預期我沒有找到這種方法的參考。

問題:該方法從哪裏來的?

p.s.我的代碼如下所示:

using System.Security.Cryptography; 
using System.Text; 
using System; 

class MainClass 
{ 
    public static string Encrypt(string toEncrypt, string key, bool useHashing) 
    { 
     ..... // same as in post 
     ..... 
    } 

    public static void Main(string [] args) 
    { 
     string key = "secret"; 

     Console.WriteLine(Encrypt("oscar" + "000", key, true).Base64ToHex()); 
    } 

}

+0

該方法調用是在你正在閱讀的東西的代碼中? – CSharpAtl 2009-05-20 18:16:29

+0

他們可能會引用一個庫,他們編寫了一個名爲Base64ToHex()的擴展方法() – CSharpAtl 2009-05-20 18:17:01

回答

1

如果代碼以往任何時候都遵守,傑夫可能對字符串的擴展方法稱爲「Base64ToHex」。 Extension methods允許您定義的方法來「擴展」其他類,使得它看上去,該方法是在類實際上定義:

public static class ExtensionMethods 
{ 
    public static string Base64ToHex(this string str) 
    { 
     return ...; 
    } 
} 
1

有一個在System.String沒有Base64ToHex方法。我認爲你正在尋找Convert.FromBase64StringBitConverter.ToString

string encrypted = Encrypt("oscar" + "000", key, true); 
Console.WriteLine(BitConverter.ToString(Convert.FromBase64String(encrypted))); 

我看了一下你的鏈接,我猜他寫了一個輔助擴展方法,做同樣的:

public static string Base64ToHex(this string s) 
{ 
    return BitConverter.ToString(Convert.FromBase64String(s)); 
}