C#:$ 符号

在C#中,$ 符号用于‌字符串内插‌(String Interpolation),这是一种简洁、可读性更高的方式来拼接字符串和表达式。‌

    在字符串字面量前加上 $ 符号,即可将该字符串标识为内插字符串。‌
    通过将变量、表达式或方法调用放在 {} 中,可以直接嵌入字符串中。例如:
    var name = "Alice";
    var message = $"Hello, {name}!";
    Console.WriteLine(message); // 输出: Hello, Alice!

    ‌1、支持任意表达式‌:
        内插字符串可以包含任何有效的C#表达式,如计算、方法调用等。‌
        示例:
        double a = 3, b = 4;
        Console.WriteLine($"Area of the right triangle with legs of {a} and {b} is {0.5 * a * b}");
        // 输出: Area of the right triangle with legs of 3 and 4 is 6

   2、 ‌格式化选项‌:
        可以通过 :formatString 指定格式(如日期、数字格式),或使用 ,width 控制对齐。‌
        示例:
        var date = DateTime.Now;
        Console.WriteLine($"Today is {date:yyyy-MM-dd}, time is {date:HH:mm}");

    ‌3、与原始字符串结合‌:
        $ 可与 @ 符号结合使用(即 $@),创建‌内插的逐字字符串‌,适用于多行文本或SQL语句,同时保留换行和转义字符。‌
        示例:
        var sql = $@"INSERT INTO Users (Name, Age) VALUES ('{name}', {age})";

4、注意事项‌:

  •         内插表达式必须用 {{ 和 }} 包裹,以避免与普通大括号冲突。‌
  •         如果变量值为 null,会自动转换为空字符串。‌
  •         在SQL等场景中,直接拼接可能引发注入风险,建议优先使用参数化查询。‌

5、场景

    ‌可读性更高‌:相比传统的 string.Format(),内插语法更直观易懂。‌
    ‌适用场景‌:日志输出、动态SQL构建、用户消息生成等需要频繁拼接字符串的场景。‌

C#编程语言中,$符号是从C# 6.0版本开始推出的语法糖,主要用于字符串插值(String Interpolation),是对`String.format()`的简化,提高了代码可读性,简化了开发过程[^1][^2][^3][^4]。 通过使用 $ 符号前缀的字符串字面量,开发者可以轻松地将变量或表达式的值嵌入到字符串中,而无需调用`string.Format()`方法或其他复杂的拼接操作。例如: ```csharp int age = 25; string name = "Alice"; // 使用 $ 插值创建字符串 string message = $"My name is {name} and I am {age} years old."; Console.WriteLine(message); // 输出: My name is Alice and I am 25 years old. ``` 上述代码展示了借助 $ 将变量`{name}`和`{age}`的值直接嵌套至最终生成的字符串之中。 值得注意的是,在某些情况下,如果需要表示实际的美元符号而非用于插值,则需连续书写两个 $ 来实现转义效果。另外,字符型数据通常占用单个字节来存储ASCII范围内的值,但这与 $ 所代表的概念完全不同,两者不可混淆[^2]。 下面是一个对比不同字符串拼接方式的示例: ```csharp using System; class Program { static void Main(string[] args) { string name = "liu"; int age = 10; // 复杂麻烦的写法 string str1 = "my name is " + name + ",my age is " + age + "."; // 使用Format的写法 string str2 = string.Format("my name is {0},my age is {1}.", name, age); // 使用$语法糖的写法 string str3 = $"my name is {name},my age is {age}."; // 控制台的三个输出都相同 Console.WriteLine(str1); Console.WriteLine(str2); Console.WriteLine(str3); } } ``` 该示例展示了使用 $ 符号进行字符串插值相较于传统字符串拼接和`string.Format()`方法的简洁性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值