是否可以创建 2 个具有相同方法名称的方法,传入值并使用条件属性和一些反条件返回值,例如
[Conditional("Debug")]
private string StringGenerator()
{
Guid g = Guid.NewGuid();
string guidString = Convert.ToBase64String(g.ToByteArray());
guidString = guidString.Replace("=", "");
guidString = guidString.Replace("+", "");
return guidString;
}
[!Conditional("Debug")]// I know using '!' doesn't really work
private string StringGenerator()
{
Guid g = Guid.NewGuid();
string guidString = Convert.ToBase64String(g.ToByteArray());
return guidString;
}
这样你就可以只调用一个方法,编译器会根据是否定义了“Debug”来选择哪个方法?
谢谢
最佳答案
不,这是不可能的。 Conditional
属性不控制方法是否在代码中定义,它只控制方法调用包含在调用代码中的条件。
此外,Conditional
属性可以多次应用于一个方法。因此,这里没有简单的开/关
决定。考虑
[Conditional("DEBUG")]
[Conditional("TRACE")]
void Target() { ... }
这里有 4 种组合需要考虑,而不仅仅是 2 种。
关于c# - 是否可以使用条件属性来创建类似的调试器和运行时方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15206853/