Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';s是C#字符串的$modifier_C#_.net_String - Fatal编程技术网

什么';s是C#字符串的$modifier

什么';s是C#字符串的$modifier,c#,.net,string,C#,.net,String,这个问题听起来很像: 但是我已经知道C#中字符串文本前面@字符的含义 但是现在我在一个例子中看到了这一点: var xml = $@"<toast> <visual> <binding template='ToastGeneric'> <text>text</text> </binding> </visual> <audio

这个问题听起来很像:

但是我已经知道C#中字符串文本前面@字符的含义

但是现在我在一个例子中看到了这一点:

var xml = $@"<toast>
    <visual>
        <binding template='ToastGeneric'>
            <text>text</text>
        </binding>
    </visual>

    <audio src='ms-winsoundevent:Notification.Looping.Alarm10' loop='true'/>
</toast>";
var xml=$@
文本
";

@会带来额外的美元。这是什么意思?

符号
$
表示C#中插入的字符串

MSDN:

用法示例:

string zzz = "world";
string helloWorld = $"hello {zzz}"; // hello world

代码中的字符串中没有大括号,因此不会发生实际的值注入-您可以删除
$
,仍然可以得到相同的结果。

这是
插值字符串,是C#6.0()

基本上,它取代了
string.Format(“,params)在旧C#版本中

用法示例:

var str = "test";
var xml = $@"<toast>
    <visual>
        <binding template='ToastGeneric'>
            <text>{str}</text>
        </binding>
    </visual>
    <audio src='ms-winsoundevent:Notification.Looping.Alarm10' loop='true'/>
</toast>";
var str=“test”;
var xml=$@”
{str}
";

好的,我明白了。我的问题应该是$not@$,因为它们没有连接。也许这就是原因,我还没有找到信息……虽然它确实使用了字符串插值修饰符,但实际上根本没有使用字符串插值。@YuvalItzchakov是的,但我想这是我的错误,因为我不知道它是如何工作的。后来我尝试了string.format,但失败了。在发布问题之前,我从文本标记中删除了我的{0},因为我认为这将是另一个问题。