我有以下方法将行打印到控制台。
public void MyMethod() {
try {
Console.WriteLine("Hello!");
Console.WriteLine("My name is MyMethod");
}
finally {
Console.WriteLine("Bye.");
}
}
我有一些这些方法,他们都做同样的事情(即尝试{“Hello”; Something;} finally {“Bye。”})。为了避免冗余并使我的代码更清晰,我想出了以下内容:
public void SayHello(Action myName) {
try {
Console.WriteLine("Hello!");
myName();
}
finally {
Console.WriteLine("Bye.");
}
}
public void MyMethod2() {
SayHello(() => Console.WriteLine("My name is MyMethod"));
}
我喜欢这种技术,但我认为通过使用属性可能会更好。以下是我最终要实现的目标:
[SayHello]
public void MyMethod2() {
Console.WriteLine("My name is MyMethod");
}
如果我可以简单地添加一个方法属性来帮助我消除冗余(即尝试{“Hello”; Something;} finally {“Bye。”}),那将是很棒的。在C#中是否可以创建这样的属性?
答案 0 :(得分:4)
答案 1 :(得分:1)
投票:
“CompileTimeAttribute在编译时注入代码” https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=93682