逐字字符串文字concat?

时间:2017-01-04 14:24:42

标签: c#

我一直在阅读逐字字符串文字和转义序列。我现在很好奇的是,当使用逐字字符串文字时,是否可以逃避并说从数据库中调用动态源?

例如,如何实现如下所示?

string jsFunc = @"
    (function() 
        {
            var image = 'Images/" + {sqlConn[2]} + "';
            var img = document.getElementbyId('img1');
            img.src = image;
        }
     );";

谢谢

1 个答案:

答案 0 :(得分:6)

您有3个选项:

string jsFunc = $@"
    (function() 
        {{
            var image = 'Images/{sqlConn[2]}';
            var img = document.getElementbyId('img1');
            img.src = image;
        }}
     );";

(注意$之前的@以及删除字符串连接部分,这会将其转换为插值字符串。另请注意,我必须加倍括号以避免绊倒基础string.Format。)

或者这个:

string jsFunc = string.Format(@"
    (function() 
        {{
            var image = 'Images/{0}';
            var img = document.getElementbyId('img1');
            img.src = image;
        }}
     );", sqlConn[2]);

哪个只是好'string.Format。同样关于加大括号。

或者这个:

string jsFunc = @"
    (function() 
        {
            var image = 'Images/" + sqlConn[2] + @"';
            var img = document.getElementbyId('img1');
            img.src = image;
        }
     );";

(请注意,在连接后我在字符串的其余部分之前添加了一个新的@,并且还删除了大括号。)