我有以下幾點:如何「發送」一種方法到另一種方法?
public class Mail {
public String Obfuscate(String email) {
return email.Replace("@", "at").Replace(".", "dot");
}
}
我在一個類中調用該方法進行模糊處理,如下所示:
public class Resolver {
public Data GetData() {
return new Data { Email = new Mail().Obfuscate(myEmail) };
}
public String Translate(string value) { /* Some Code */ }
}
的問題是,模糊處理確實在英語置換:@>的。 >點
但在解析器類中的方法不翻譯正是我需要的...
我怎樣才能「通」的翻譯方法將模糊處理方法,所以這一塊用它來翻譯@和。在當前的語言點和點?
所以裏面混淆代碼行:
return email.Replace("@", "at").Replace(".", "dot");
將成爲:
return email.Replace("@", Translate("@")).Replace(".", Translate("."));
當翻譯將是我「傳遞」給它的方法。
比你多, 米格爾
我建議像什麼呢白話:靜態類與翻譯方法。如果你不能改變這種情況,請將委託作爲參數傳遞給模糊處理:public String Obfuscate(String email,Func translator) –
Eregrith
這正是代表的用途。你可以使用Func。但我相信,應該有更優雅的方式。 –