欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

关于C#:字符串前的$ (美元符号)是什么意思? 里面有 大括号 {} 插值 有大用 有大大用

插值字符串表达式通过用表达式结果的ToString表示替换包含的表达式来创建字符串。

c# - 美元符号是什么$
加了美元符号$能直接取{}里面的值

它看起来很像String.Format()占位符,但它不是索引,而是花括号内的表达式

在这里插入图片描述
如果加了美元符号 则{t} 会输出100 如果不加 则相当于字符串直接输出



来自  https://blog.csdn.net/LCHUIHUI/article/details/113648830



$String.Format的简称,用于字符串插值,这是c 6的一个新特性。正如在您的案例中使用的那样,它什么也不做,就像string.Format()什么也不做一样。

当用于构建引用其他值的字符串时,它是自己的。以前必须写的是:


1
2
3
4
var anInt = 1;
var aBool = true;
var aString ="3";
var formated = string.Format("{0},{1},{2}", anInt, aBool, aString);


现在变成:


1
2
3
4
var anInt = 1;
var aBool = true;
var aString ="3";
var formated = $"{anInt},{aBool},{aString}";


另外还有一种使用$@的字符串插值形式(这两个符号的顺序很重要)。它允许@""字符串的特性与$""混合,以支持字符串插入,而不需要在字符串中使用\\。所以下面两行:


1
2
var someDir ="a";
Console.WriteLine($@"c:\{someDir}\b\c");


意志产出:


1
c:\a\b\c

请注意,它并不是真正使用string.format,而是基于编译器的功能,而不是运行时功能。


我今天学到的一点小提示是,如果你使用


$@,那么你就不得不使用""来逃避"字符。当您只使用$

时,情况并非如此。

@不过,这与美元符号无关。这和$符号出现之前的行为是一样的。

关于逐字(@)和插值($)符号顺序的重要性,在C 8中进行了更正,以便顺序不再重要。请参阅:devsanon.com/uncategorized/…



它创建一个内插字符串。

来自MSDN


Used to construct strings. An interpolated string expression looks
like a template string that contains expressions. An interpolated
string expression creates a string by replacing the contained
expressions with the ToString represenations of the expressions’
results.


前任:


1
2
3
4
 var name ="Sam";
 var msg = $"hello, {name}";

 Console.WriteLine(msg); // hello, Sam


可以在插值字符串中使用表达式


1
2
 var msg = $"hello, {name.ToLower()}";
 Console.WriteLine(msg); // hello, sam


它的好处在于,您不需要像处理String.Format那样担心参数的顺序。


1
  var s = String.Format("{0},{1},{2}...{88}",p0,p1,..,p88);


现在,如果你想删除一些参数,你必须去更新所有的计数,这已经不是问题了。

请注意,如果您想在格式中指定文化信息,好的旧String.Format仍然是相关的。


请注意,如果使用正确的区域性(例如,

{somevar.ToString(...,[Insert culture info here])}

)将数据转换为$表达式内部的字符串,您可能仍然可以使用$

并指定区域性信息。



来自  https://www.codenong.com/31014869/




C# 在字符串前加了$,这个 dollar 符号有什么用?美元符号是什么意思

加了$能直接取{}里面的值,如果没有加,则会显示{this.mainReceiver}这类值。
例子:
不加$:要显示m_a,m_b
Console.WriteLine("this is a:{0},this is b:{1}",m_a,m_b));

加$:可将值直接放{}里:
Console.WriteLine($"this is a:{m_a} ,this is b:{m_b}");


来自  http://t.zoukankan.com/txwtech-p-14753757.html


普通分类: