简短而简单。 C# 6.0 中新的字符串插值是否依赖于反射? IE。做
string myStr = $"Hi {name}, how are you?";
在运行时使用反射来查找变量“name”及其值?
最佳答案
没有。它没有。它完全基于编译时评估。
你可以用这个 TryRoslyn example 看到编译和反编译这个:
int name = 4;
string myStr = $"Hi {name}, how are you?";
进入这个:
int num = 4;
string.Format("Hi {0}, how are you?", num);
字符串插值还支持使用 IFormattable
作为结果,因此 (again using TryRoslyn) 如下:
int name = 4;
IFormattable myStr = $"Hi {name}, how are you?";
变成这样:
int num = 4;
FormattableStringFactory.Create("Hi {0}, how are you?", new object[] { num });
关于c# - C# 6.0 的字符串插值是否依赖于反射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31359360/