zoukankan      html  css  js  c++  java
  • C#笔记(六)--内插字符串

    内插表达式,格式字符串

    // Example 1
    // 可通过在内插表达式后接冒号(“:”)和格式字符串来指定受表达式结果类型支持的格式字符串
    // {<interpolationExpression>:<formatString>}
    var date = new DateTime(1731, 11, 25);
    Console.WriteLine($"On {date:dddd, MMMM dd, yyyy} Leonhard Euler introduced the letter e to denote {Math.E:F5} in a letter to Christian Goldbach.");
    
    // Expected output:
    // On Sunday, November 25, 1731 Leonhard Euler introduced the letter e to denote 2.71828 in a letter to Christian Goldbach.
    
    // Example 2
    // 通过在内插表达式后添加逗号(“,”)和常数表达式来指定设置了格式的表达式结果的最小字段宽度和对齐方式
    // 如果对齐方式值为正,则设置了格式的表达式结果为右对齐,如果为负,则为左对齐 。
    // {<interpolationExpression>,<alignment>:<formatString>}
    const int NameAlignment = -9;
    const int ValueAlignment = 7;
    
    double a = 3;
    double b = 4;
    Console.WriteLine($"Three classical Pythagorean means of {a} and {b}:");
    Console.WriteLine($"|{"Arithmetic",NameAlignment}|{0.5 * (a + b),ValueAlignment:F3}|");
    Console.WriteLine($"|{"Geometric",NameAlignment}|{Math.Sqrt(a * b),ValueAlignment:F3}|");
    Console.WriteLine($"|{"Harmonic",NameAlignment}|{2 / (1 / a + 1 / b),ValueAlignment:F3}|");
    
    // Expected output:
    // Three classical Pythagorean means of 3 and 4:
    // |Arithmetic|  3.500|
    // |Geometric|  3.464|
    // |Harmonic |  3.429|
    
    // Example 3
    // 内插字符串中使用转义序列
    // 若要逐字解释转义序列,可使用逐字字符串文本。 内插逐字字符串以 $ 字符开头,后跟 @ 字符。 从 C# 8.0 开始,可以按任意顺序使用 $ 和 @ 标记:$@"..." 和 @$"..." 均为有效的内插逐字字符串。
    // 若要在结果字符串中包含大括号 "{" 或 "}",请使用两个大括号 "{{" 或 "}}"。
    var xs = new int[] { 1, 2, 7, 9 };
    var ys = new int[] { 7, 9, 12 };
    Console.WriteLine($"Find the intersection of the {{{string.Join(", ",xs)}}} and {{{string.Join(", ",ys)}}} sets.");
    
    var userName = "Jane";
    var stringWithEscapes = $"C:\Users\{userName}\Documents";
    var verbatimInterpolated = $@"C:Users{userName}Documents";
    Console.WriteLine(stringWithEscapes);
    Console.WriteLine(verbatimInterpolated);
    
    // Expected output:
    // Find the intersection of the {1, 2, 7, 9} and {7, 9, 12} sets.
    // C:UsersJaneDocuments
    // C:UsersJaneDocuments
    
    // Example 4
    // 使用三元条件运算符 ?:
    var rand = new Random();
    for (int i = 0; i < 7; i++)
    {
        Console.WriteLine($"Coin flip: {(rand.NextDouble() < 0.5 ? "heads" : "tails")}");
    }
    
    //Example 5
    // 使用字符串插值创建区域性特定的结果字符串
    var cultures = new System.Globalization.CultureInfo[]
    {
        System.Globalization.CultureInfo.GetCultureInfo("en-US"),
        System.Globalization.CultureInfo.GetCultureInfo("en-GB"),
        System.Globalization.CultureInfo.GetCultureInfo("nl-NL"),
        System.Globalization.CultureInfo.InvariantCulture
    };
    
    var date = DateTime.Now;
    var number = 31_415_926.536;
    FormattableString message = $"{date,20}{number,20:N3}";
    foreach (var culture in cultures)
    {
        var cultureSpecificMessage = message.ToString(culture);
        Console.WriteLine($"{culture.Name,-10}{cultureSpecificMessage}");
    }
    
    // Expected output is like:
    // en-US       5/17/18 3:44:55 PM      31,415,926.536
    // en-GB      17/05/2018 15:44:55      31,415,926.536
    // nl-NL        17-05-18 15:44:55      31.415.926,536
    //            05/17/2018 15:44:55      31,415,926.536
    
  • 相关阅读:
    Apache ab压力测试
    2、Android自动测试之Monkey工具
    1、Monkey环境搭建
    解决IDEA中,maven依赖不自动补全的问题
    Centos7解决在同一局域网内无法使用ssh连接
    sql草稿
    mysql三表联合查询,结果集合并
    vue:父子组件间通信,父组件调用子组件方法进行校验子组件的表单
    vue:使用不同参数跳转同一组件,实现动态加载图片和数据,以及利用localStorage和vuex持久化数据
    vue:解决使用param传参后,再次刷新页面会新增一个原有的tab
  • 原文地址:https://www.cnblogs.com/francisforeverhappy/p/Csharp6.html
Copyright © 2011-2022 走看看