逐字字符串文字concat?

Jor*_*dan -1 c#

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

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

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

谢谢

ang*_*son 6

你有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)

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