C# $-字符串插值实时编译-从文件
我有一个文件(或者可以是DB列中的NVARCHAR) 字符串是C# $-字符串插值实时编译-从文件,c#,C#,我有一个文件(或者可以是DB列中的NVARCHAR) 字符串是 $"My name is {Name}" 所以在我的代码中应该是 var Name = "Donald"; var line = //Get line from file or DB var output = $"{line}"; //<-?????? var Name=“Donald”; var line=//从文件或数据库获取行 变量输
$"My name is {Name}"
所以在我的代码中应该是
var Name = "Donald";
var line = //Get line from file or DB
var output = $"{line}"; //<-??????
var Name=“Donald”;
var line=//从文件或数据库获取行
变量输出=$“{line}”// 如中所述,字符串插值是编译时的一项功能。通常,编译器会将您的字符串转换为一些string.Format
。因此,$“MyString{line}
将产生String.Format(“MyString{0}”,line)
但是,在您的示例中,行
本身是一个插值字符串。因此编译器将其转换为:
var output = string.Format("{0}", line);
这是在运行时计算的。因此编译器对实际值以及必须再次翻译的事实没有任何线索。您可能会用行接近。替换($“{{{nameof(Name)}}}”,Name)
并删除开始的$”
和结束的“
您必须坚持使用String.Format或手动将标记替换为值(或者可能有一个库以合理的方式执行此操作)。您可能不想使用替换函数?您希望被替换的变量由文件内容处理,而不在代码中处理它?对吗?