专栏首页喵叔's 专栏FormattableString 取代特定区域字符串

FormattableString 取代特定区域字符串

有些软件系统是针对全球来开发的,因此一些字符串需要根据不同地区不同语言做出特定的处理。如果针对不同地区不同用语言分别编写字符串处理方法的话代码量是巨大的。那么这个时候我们可以用到内插字符串深层的特性,C# 会把内插字符串的结果隐式的转换成 string 或者 FormattableString 。 例如下面这个例子,内插字符串的结果将是 string 类型:

string message = $"我的名字叫 {name} ";

下面这段代码内插字符串的结果将会被转换为 FormattableString 对象:

FormattableString message= $"我的名字叫 {name} ";

当我们声明隐式类型的局部变量,并将内插字符串的结果赋值给它时,实际上内插字符串的结果会隐式转换为 string 类型。编译器会根据应该输出的信息所具有的运行期类型来产生不同的程序码。用来创建字符串的程序码部分会根据执行该程序的计算机所在位置来生成该区域的字符串格式。开发人员也可以利用编译器类型判定机制来编写生成 stritg 或 FormttableString 的代码。

public static string ToGerman(FormattableString fts)
{
    return string.Format(null,System.Globalization("de-de"),fts.Format.fts.GetArguments());
}

上述代码我们定义一个将字符串转换为德语格式的方法,它接受一个类型为 FormattableString 的参数,返回一个字符串。我么们可以在内插字符串结果上直接调用这个方法。当我们编写类似的方法时需要有两点需要注意:

  1. 不要给这些方法编写以 string 类型作为参数的重载,因为如果存在 string 参数类型的重载编译器会优先选择以 string 类型为参数的方法;
  2. 不能将这些方法设计为可扩展的方法,因为编译器在判断应该生成 string 还是 FormattableString 的时候会考虑字符串位于运算符的哪一侧,如果位于左侧就生成 string 。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 少用 string.Format

    如果你使用的是 C# 6.0 及其以上版本的话我建议你使用新增的 内插字符串 这个功能。这个功能可以更好的帮助开发人员设置字符串格式。下面我们就来看一下为什么要...

    喵叔
  • TensorFlow学习笔记--自定义图像识别

    本篇文章主要讲解自己的图像数据如何在TnesorFlow上训练,主要从数据准备、训练模型、验证准确率和导出模型并对图片分类。重点如下:

    喵叔
  • 第二章--第一节:变量、字符串与数字

    大家一定会疑问,2.01+3.1 应该是5.11吗,为什么控制台输出的是5.109999999呢?其实这是浮点数一个普遍的问题,浮点数并不能准确地表示十进制, ...

    喵叔
  • Tcl的字符串操作:比较字符串

    在Tcl中,可利用stringcompare命令对字符串进行比较。该命令需要接收两个字符串参数。如果第一个字符串在字典中先于第二个字符串,返回-1;如果第一个字...

    Lauren的FPGA
  • 零基础学Python--------第5章

     在Python开发过程中,为了实现某项功能,经常需要对某些字符串进行特殊处理,如拼接字符串、截取字符串、格式化字符串等。下面将对Python中常用的字符串操作...

    py3study
  • C# 基础知识系列- 9 字符串的更多用法(一)

    在前面的文章里简单介绍了一下字符串的相关内容,并没有涉及到更多的相关内容,这一篇将尝试讲解一下在实际开发工作中会遇到的字符串的很多操作。

    程序员小高
  • 答粉丝问|求给定字符串中最长公共子串

    首先抓取问题的关键点,一是“最长”,二是“公共”。然后再看问题都是在字符串中操作,所以小编首先想到的就是对字符串进行一系列切片操作。具体怎么实施,还得回到问题要...

    算法与编程之美
  • LeetCode 1422. 分割字符串的最大得分

    给你一个由若干 0 和 1 组成的字符串 s ,请你计算并返回将该字符串分割成两个 非空 子字符串(即 左 子字符串和 右 子字符串)所能获得的最大得分。

    freesan44
  • Python|判断各种括号的有效使用

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:

    算法与编程之美
  • PHP常用函数 字符串处理函数

    友情提示:此篇文章大约需要阅读 13分钟58秒,不足之处请多指教,感谢你的阅读。订阅本站

    Debug客栈

扫码关注云+社区

领取腾讯云代金券