1 回答
TA贡献1802条经验 获得超5个赞
假设有一个全局replacements struct(??) 并假设未指定类型,您可以传入一个 lambda 来指定要调用的成员方法。
public void CreatePart(Func<ReplacementMap, Dictionary<string, string>> getReplacementMap) {
CreateTextPart("DefaultText.txt",
(string text) => {
var mapd = getReplacementMap(replacements);
Regex regex = new Regex(string.Join("|", mapd.Keys.Select(x => Regex.Escape(x))));
string replaced = regex.Replace(text, m => mapd[m.Value]);
return replaced;
}
);
}
然后你只需调用CreatePart每个部分:
public void CreateTextFile() {
CreatePart(r => r.DefaultText());
CreatePart(r => r.RedText());
CreatePart(r => r.EndText());
}
但是,当您可以直接传入方法调用结果时,为什么要这样做呢?
public void CreatePart(Dictionary<string, string> mapd) {
CreateTextPart("DefaultText.txt",
(string text) => {
Regex regex = new Regex(string.Join("|", mapd.Keys.Select(x => Regex.Escape(x))));
string replaced = regex.Replace(text, m => mapd[m.Value]);
return replaced;
}
);
}
public void CreateTextFile() {
CreatePart(replacements.DefaultText());
CreatePart(replacements.RedText());
CreatePart(replacements.EndText());
}
- 1 回答
- 0 关注
- 105 浏览
添加回答
举报