我一直在阅读逐字字符串文字和转义序列.我现在感到好奇的是,当使用逐字字符串文字时,是否可以逃避并说从数据库中调用动态源?
例如,如何实现如下所示?
string jsFunc = @"
(function()
{
var image = 'Images/" + {sqlConn[2]} + "';
var img = document.getElementbyId('img1');
img.src = image;
}
);";
Run Code Online (Sandbox Code Playgroud)
谢谢
你有3个选择:
string jsFunc = $@"
(function()
{{
var image = 'Images/{sqlConn[2]}';
var img = document.getElementbyId('img1');
img.src = image;
}}
);";
Run Code Online (Sandbox Code Playgroud)
(请注意字符串连接部分$之前@和之后的删除,这会将其转换为插值字符串.另请注意,我必须将括号加倍以避免触发底层string.Format.)
或这个:
string jsFunc = string.Format(@"
(function()
{{
var image = 'Images/{0}';
var img = document.getElementbyId('img1');
img.src = image;
}}
);", sqlConn[2]);
Run Code Online (Sandbox Code Playgroud)
哪个只是good'ol string.Format.同样在这里大括号加倍.
或这个:
string jsFunc = @"
(function()
{
var image = 'Images/" + sqlConn[2] + @"';
var img = document.getElementbyId('img1');
img.src = image;
}
);";
Run Code Online (Sandbox Code Playgroud)
(注意,@在连接之后我在字符串的其余部分之前添加了一个新的,并且还删除了大括号.)