C# 中 “$” 符号的作用以及用法详解

 更新时间:2020年06月11日 14:19:46   作者:不染-何程龙  
这篇文章主要介绍了C# 中 “$” 符号的作用以及用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

前言:$是c# 6.0 的语言特性,功能类似string.format(),更方便的地方在于不要像format一样使用索引,可以直接使用变量、表达式或者方法的执行。

一、C#中$的作用

谈及这个$,其实它是C#6.0语法中模板字符串的一种写法,什么是模版字符串?还记得你们用过的格式化字符串吗?string.Format() 这个方法,是最常用的方法之一。

$又是什么呢?它是为了替代string.format()的,原先赋值需要占位符和变量,当需要拼接多个变量会造成语句过长等不易理解问题。

$是为了替代string.format(),可以把字符串中的C#变量{}包含起来达到识别C#变量的目的$"{id}";也支持表达式,使用$"{(你的表达式)}";或者方法的执行,使用$"{(方法)}"

二、C#中$的用法

C# 中$符号的作用是C#6.0中新出现的一个特性,也即是字符串的拼接优化。

语法格式:$"string {参数}"

解释:以$符号开头开始字符串,其中以{}来进行传参,可以多个参数累加。

例如:var results = $"Hello {Name}";

三、关于$的示例讲解

var str = string.Format("我的名字叫{1},我今年{1}岁。", "张三", 23);
Console.WriteLine(str);

这是我们使用string.format()的写法,下来我们使用$改写一下。

var str = $"我的名字叫{"张三"},我今年{23}岁。";
Console.WriteLine(str);

通过上面这个案例,我们发现,现在使用$代码简洁,可读性强。

可能有些朋友觉得效果不太明显,那么请看下面这个案例:

var name = "张三";
var age = 23;
var sex = "男";
var message = string.Format("我叫{0},我的年龄为{1},我的性别是{2}", name, age, sex);
var show = $"我叫{name},我的年龄为{age},我的性别是{sex}";
Console.WriteLine(message);
Console.WriteLine(show);

在这里插入图片描述

如果还感受不到,那么请你试想一下:如果我们要操作的数据很多,假设它是一个多条的SQL语句,那么在长篇字符串中定位索引,那是不是很累啊!纵使你写对了索引(没写对还得一个个检查、修改),好不容易完工了。但下一个需求让你加两个参数,你的索引位置又得变,还得在万码丛中查找你原来索引在哪里的,是不是很恶心?

哈哈,不用沮丧,此时C#6.0模版字符串就可以闪亮登场啦!

怎么用?总结一下,就是在字符串的双引号前面加一个 $ 符号,在需要使用变量的地方用{变量}就可以了。这个在我们上面的案例中,也有体现。

四、关于$的补充知识

正如我们上面所说,{变量}表示在字符串中输出变量的值,当然{}中间也可以是一个表达式或者方法的执行。

$"我的姓名是{GetName()}";
$"name的类型是{name.GetType()}";

如上,这样就很方便,帅气了!那么变量和索引可以混用吗?当然也是可以的,如下:

var name = "张三";
var age = 23;
var sex = "男";
var show = string.Format($"我是{name},今年{age},家住在{{0}}", sex); 
Console.WriteLine(show);

在这里插入图片描述

要注意的是需要用两次大括号 {{}} 将索引包含起来,也就是这样的形式,{{索引}}。因为一次是输出表达式,两次就转义成普通的占位符了,这点一定要注意!

总结

到此这篇关于C# 中 “$” 符号的作用以及用法的文章就介绍到这了,更多相关C# $ 符号作用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • C#获取系统版本信息方法

    C#获取系统版本信息方法

    今天做一个获取系统版本信息的实例,其获取方法很简单,需要的朋友可以参考下
    2012-11-11
  • 使用c#实现随机数猜数游戏的示例代码

    使用c#实现随机数猜数游戏的示例代码

    这篇文章主要介绍了使用c#实现随机数猜数游戏的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 轻松学习C#的ArrayList类

    轻松学习C#的ArrayList类

    轻松学习C#的ArrayList类,对C#的ArrayList类感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的ArrayList类
    2015-11-11
  • 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic

    详解C# 匿名对象(匿名类型)、var、动态类型 dynamic

    随着C#的发展,该语言内容不断丰富,开发变得更加方便快捷,C# 的锋利尽显无疑。下面通过本文给大家分享C# 匿名对象(匿名类型)、var、动态类型 dynamic,需要的的朋友参考下吧
    2017-09-09
  • C#在PDF中绘制不同风格类型的文本方法实例

    C#在PDF中绘制不同风格类型的文本方法实例

    这篇文章主要给大家介绍了关于C#在PDF中绘制不同风格类型的文本的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • C#分屏控件用法实例

    C#分屏控件用法实例

    这篇文章主要介绍了C#分屏控件用法实例,需要的朋友可以参考下
    2014-08-08
  • C#反色处理及其效率问题分析

    C#反色处理及其效率问题分析

    这篇文章主要介绍了C#反色处理及其效率问题分析,实例分析了C#反色处理问题的技巧及相关效率问题,需要的朋友可以参考下
    2015-06-06
  • Unity为软件添加使用有效期的具体步骤

    Unity为软件添加使用有效期的具体步骤

    今天小编遇到这样一个需求需要为软件设定一个使用有效期,当超过指定时间后,程序无法执行,实现思路并不复杂,今天小编通过本文给大家分享Unity为软件添加使用有效期的具体步骤,感兴趣的朋友一起看看吧
    2022-03-03
  • C# wpf 通过HwndHost渲染视频的实现方法

    C# wpf 通过HwndHost渲染视频的实现方法

    日常开发中,特别是音视频开发,需要在界面上渲染视频,比如制作一个播放器、或者视频编辑工具、以及视频会议客户端。通常拿到的是像素格式数据,此时需要渲染到wpf窗口上就需要一定的方法,本文介绍一种通过hwnd渲染的方法,控件既能提供hwnd又能嵌入wpf窗口里
    2021-11-11
  • C#实现冒泡排序算法的代码示例

    C#实现冒泡排序算法的代码示例

    冒泡排序即是对数组每次轮循出最大数或最小数放在队尾,这里我们来看一下C#实现冒泡排序算法的代码示例,需要的朋友可以参考下
    2016-07-07

最新评论