在 C# 中使用 插值字符串

目录
  • 1.字符串插值 的结构
  • 2.创建 字符串插值
  • 3.插值字符串必须在编译时就能确定
  • 4.插件字符串中使用特殊字符

前言:

字符串插值是一种将 表达式 插入到字符串字面量中的一种技术,又称为变量替换,变量插值,变量展开 等等,它是一种用相应值替换字符串中的一个或者更多个占位符的处理过程。

字符串插值被很多编程语言所采用,比如说:Python,Perl,PHP,Ruby,Java,Scala 等等, C# 是在第六个版本中引入的,这篇文章我们将会讨论如何在 C# 中使用 字符串插值。

1.字符串插值 的结构

从语言层面上来说,字符串插值就是一个包含插值表达式的string,这个string中的某一个插值最终都会被一个实际值所替代。

插值字符串是用 $ 开头的,此外  $ 和字符串字面量之间不能有任何空格,下面的语言展示了 插值表达式 的语法结构。

{<interpolationExpression>[,<alignment>][:<formatString>]}

注意方括号内的元素是可选的。interpolationExpression 元素表示生成结果或输出字符串的表达式。alignment 表示一个常量表达式,其值指定在计算表达式时必须包含在表达式结果的字符串表示形式中的最小字符数。如果值为正数,则字符串表示为右对齐;如果值为负数,则字符串表示为左对齐。formatString 顾名思义,表示一个格式字符串。

2.创建 字符串插值

当使用字符串插值时,必须首先在字符串之前插入一个 $ 字符,而不是单独为每一个元素单独格式化。

一个插值表达式必须包含在一个左大括号和一个右大括号内  ({})。下面的代码片段展示了如何使用字符串插值来将字符串替换为文本值。

var name = "Joydip";
Console.WriteLine($"Hello, {name}");

接下来考虑下面的代码段。

string productName = "Lenovo Legion Laptop";
int counter = 5;
string output = string.Format("Today, {0} has been sold {1} times.",
                                               productName, counter);

当把代码运行起来后,output 内容输出如下:

Today, Lenovo Legion Laptop has been sold 5 times.

现在用 插值法 来改造一下,参考结果如下:

string productName = "Lenovo Legion Laptop";
int counter = 5;           
string output = $"Today, {productName}, has been sold {counter} times.";

3.插值字符串必须在编译时就能确定

插值字符串看起来像是一个创建 字符串模板 的简单方式,但你必须要意识到,插值字符串在 C# 中仅仅是一个编译时语法糖而已,换句话说,你的插值字符串必须在编译时就是一个普通的字符串字面量。

4.插件字符串中使用特殊字符

接下来我们来学习下,如何在 插值字符串 中使用特殊字符,考虑下面的例子。

string productName = "Lenovo Legion Laptop";
double price = 1600.00;
Console.WriteLine($"The customer asked, \"What is the price of {productName}?\"");
Console.WriteLine($"The salesman replied saying that the price of {productName} is ${price}.");

正如你看到的,如果包含特殊字符,必须用 \ 进行转义,字符串插值允许我们插入一个 value 到字符串中,并还能控制最后生成的输出结果,从语言层面来说,字符串插值最后会变成String.Format,相反,如果字符串插值是 IFormattable 或者 FormattableString 类型,那么编译器会调用 FormattableStringFactory.Create 方法。

理论上来说,字符串插值稍微降低了程序的性能,但 .NET 最近的几个版本已经做了很大的优化,同时 字符串插值 所带来的灵活性远超这个所谓的性能。

到此这篇关于在 C# 中使用 插值字符串的文章就介绍到这了,更多相关 C# 中使用 插值字符串内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

赞 (0)

相关推荐

  • 在 C# 中使用 插值字符串

    目录 1.字符串插值 的结构 2.创建 字符串插值 3.插值字符串必须在编译时就能确定 4.插件字符串中使用特殊字符 前言: 字符串插值是一种将 表达式 插入到字符串字面量中的一种技术,又称为变量替换,变量插值,变量展开 等等,它是一种用相应值替换字符串中的一个或者更多个占位符的处理过程. 字符串插值被很多编程语言所采用,比如说:Python,Perl,PHP,Ruby,Java,Scala 等等, C# 是在第六个版本中引入的,这篇文章我们将会讨论如何在 C# 中使用 字符串插值. 1.字符串

  • 详解JavaScript ES6中的模板字符串

    在 ES6 中引入了一种新的字符串字面量 - 模板字符串,除了使用反引号 (`) 表示,它们看上去和普通的字符串没有什么区别.在最简单的情况下,他们就是普通的字符串: context.fillText(`Ceci n'est pas une cha?ne.`, x, y); context.fillText(`Ceci n'est pas une cha?ne.`, x, y); 之所以被称为模板字符串,是因为模板字符串为 JS 引入了简单的字符串插值特性,也就是说,可以方便优雅地将 JS 的值

  • 浅谈python中列表、字符串、字典的常用操作

    列表操作如此下: a = ["haha","xixi","baba"] 增:a.append[gg] a.insert[1,gg] 在下标为1的地方,新增 gg 删:a.remove(haha) 删除列表中从左往右,第一个匹配到的 haha del a.[0] 删除下标为0 对应的值 a.pop(0) 括号里不写内容,默认删除最后一个,写了,就删除对应下标的内容 改:a.[0] = "gg" 查:a[0] a.index(&q

  • Java编程实现中英混合字符串数组按首字母排序的方法

    本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法.分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序.例如: String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分"

  • js String对象中常用方法小结(字符串操作)

    1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号.有效值为0到字符串长度减1的数字. 如果指定位置没有字符,将返回NaN. 例如: var str = "ABC"; str.charCodeAt(0); 结果:65 2.fromCharCode方法从一些Unicode字符串中返回一个字符串. String.fromCharCode([code1[,cod

  • 10个.NET中删除空白字符串的方法

    我们有无数方法可用于删除字符串中的所有空白,但是哪个更快呢? 介绍 如果你问空白是什么,那说起来还真是有些乱.许多人认为空白就是SPACE 字符(UnicodeU+0020,ASCII 32,HTML ),但它实际上还包括使得版式水平和垂直出现空格的所有字符.事实上,这是一整类定义为Unicode字符数据库的字符. 本文所说的空白,不但指的是它的正确定义,同时也包括string.Replace(" ", "")方法. 这里的基准方法,将删除所有头尾和中间的空白.这就

  • 在js中做数字字符串补0(js补零)

    通常遇到的一个问题是日期的"1976-02-03 HH:mm:ss"这种格式 ,我的比较简单的处理方法是这样: function formatDate(d) { var D=['00','01','02','03','04','05','06','07','08','09'] with (d || new Date) return [ [getFullYear(), D[getMonth()+1]||getMonth()+1, D[getDate()]||getDate()].join

  • PHP中常用的字符串格式化函数总结

    字符串的格式化就是将字符串处理为某种特定的格式.通常用户从表单中提交给服务器的数据都是字符串的形式,为了达到期望的输出效果,就需要按照一定的格式处理这些字符串后再去使用.经常见到的字符串格式化函数如下图所示: 注意:在PHP中提供的字符串函数处理的字符串,大部分都不是在原字符串上修改,而是返回一个格式化后的新字符串. 一.取出空格和字符串填补函数 空格也是一个有效的字符,在字符串中也会占据一个位置.用户在表单输入数据时,经常在无意中会多输入一些无意义的空格.因此PHP脚本在接收到通过表单处理过来

  • php实现指定字符串中查找子字符串的方法

    本文实例讲述了php实现指定字符串中查找子字符串的方法.分享给大家供大家参考.具体分析如下: 对strpos()函数可以用来在php中查找子字符串.strpos()函数将试图找到子字符串在源字符串中首次出现的位置.如果找到了,它会返回一个非负整数表示子字符串出现的位置. 否则它会返回一个布尔值false. <?php $haystack1 = "2349534134345w3mentor16504381640386488129"; $haystack2 = "w3men

  • PHP中一个控制字符串输出的函数

    // php 中 一个控制字符串输出的函数(中英文),每行显示多少字数,避免英文的影响 // $str 字符串 // $len 每行显示的字数(汉字×2) function rep($str,$len) {       $strlen=strlen($str);       $i=0;     $finstr="";     $pos=0; while($i<$strlen)       {         $s1=substr($str,$i,1);       $s2=ord

随机推荐