Xen*_*tSs 0 c# compiler-construction constants
当我真的不知道叫什么时,我很难弄清楚这是否可行.
我有一个APIKey(可以使用不同的版本进行更改),我们有另一个字段可以将该APIKey转换为更友好的Web.我希望让编译器能够计算出网络友好性.
目前,我们正在重新计算每次调用webapi时的值.我可以很容易地定义一个const并放入它的web友好版本,但我想成为一个有点发烧友并提供更少的维护.
我想要的是这样的.
public class WebSearch{
private const string ApiKey="jsdfjsd90234092j3_%sss";
private const string WebFriendlyKey=#Compiler(ApiKey.Replace("-","+"));
}
Run Code Online (Sandbox Code Playgroud)
WebFriendlyKey由编译器计算的位置.
C#4规范的第7.19节列出了编译器将代表您对常量执行的每个操作.字符串替换不是其中之一.
但是,您可以使用只读静态字段或具有静态属性的只读静态字段,如果尚未计算该值,则计算该值,如果是,则获取该值.在这种情况下,编译器不会进行编译,但每个appdomain只会执行一次计算.
那就是说,我同意Henk.你有更大的鱼在这里炒.担心实际影响正确性或性能的事情.