加了$能直接取{}里面的值,如果没有加,则会显示{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}");
欢迎各位兄弟 发布技术文章
这里的技术是共享的
如果加了美元符号 则{t} 会输出100 如果不加 则相当于字符串直接输出
来自 https://blog.csdn.net/LCHUIHUI/article/details/113648830
当用于构建引用其他值的字符串时,它是自己的。以前必须写的是:
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 |
它的好处在于,您不需要像处理
1 | var s = String.Format("{0},{1},{2}...{88}",p0,p1,..,p88); |
现在,如果你想删除一些参数,你必须去更新所有的计数,这已经不是问题了。
请注意,如果您想在格式中指定文化信息,好的旧
请注意,如果使用正确的区域性(例如,
{somevar.ToString(...,[Insert culture info here])}
)将数据转换为$表达式内部的字符串,您可能仍然可以使用$
并指定区域性信息。
来自 https://www.codenong.com/31014869/
加了$能直接取{}里面的值,如果没有加,则会显示{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