• .net的字符串插值,格式化字符串


    之前一直用老版本的.net,那时候基本都是string.Format(),最近用了下新版本的还有dotnet core2.0

    发现有了种新的插值方法,或者叫格式化方法。就是用$"..."的方式实现直接插值的方法,这样就不用老formatter,而且更直观。

    我举个例子 

                string who = "I";
                string where = "in the office";
                DateTime when = DateTime.Now;
                string things = "write code";
    
                Console.WriteLine($"{who} {things} {where} at {when:yyyy-MM-dd} {(when.Hour > 12 ? "pm" : "am")}");

    输出为: I write code in the office at 2018-05-28 am

    这种方式可以在字符串中带入变量,并且可以格式化,还可以进行简单的表达式。

    这三种具体的实现方式,首先要在字符串头加$

    1.如果直接填入变量的花需要一个大括号{varName} 里面直接写上变量名

    2.如果要格式化一个变量,就如DateTime,需要{varName:Formatter},在变量名后面加一个" : "冒号,后面写格式化的字符串

    3.表达式,需要在{}中加个(),在()中写表达式,当然不一定三段表达式,加减乘除也可以,其他我还没有试。

    注意 如果要在$插值字符串中写"{"或"}"的话,需要写成"{{"或"}}"。

    下面是官方文档,这个更全一些:

    https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/tokens/interpolated

    其实官方的更好,我是一开始找半天这个文档,不知道叫插值表达式,一直没找到,所以写篇文章记录下,也避免走弯路。

  • 相关阅读:
    Nginx 禁止IP访问
    Nginx服务优化详解
    adb不响应
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    【翻译】Android避免内存泄露(Activity的context 与Context.getApplicationContext)
    内存泄露情况
    AndroidManifest笔记
    RecyclerView设置verticalSapcing等
    Fragment回调顺序及getActivity()为NullPointerException解决方法
    git tag
  • 原文地址:https://www.cnblogs.com/stupidanimal/p/9098680.html
Copyright © 2020-2023  润新知