C#字符串简单介绍

开发 后端
这里介绍C#字符串中的用法,虽然提高了代码的清晰度和简便性,却无行中带来了另一个问题:字符长度!很多场景下我们希望C#字符串越短越好,如,通过ADO.NET 发送 SQL 语句给数据库执行。

C#字符串有很多值得学习的地方,这里我们主要介绍C#字符串的用法,包括介绍C#字符串常量可以以 @ 开头声名等方面。

C#字符串中的用法

1. 地球人都知道 C# 中 C#字符串常量可以以 @ 开头声名,这样的优点是转义序列“不”被处理,按“原样”输出,即我们不需要对转义字符加上 \ (反斜扛),就可以轻松coding。如:

  1. string filePath = @"c:\Docs\Source\a.txt"    
  2. // rather than "c:\\Docs\\Source\\a.txt" 

2. 如要在一个用 @引起来的C#字符串中包括一个双引号,就需要使用两对双引号了。这时候你不能使用 \ 来转义爽引号了,因为在这里 \ 的转义用途已经被 @  “屏蔽”掉了。如:

  1. @"""Ahoy!"" cried the captain."      
  2. // 输出为: "Ahoy!" cried the captain. 

3. @会识别换行符其实这个特性,我不知道怎么描述,只是偶然发现的,先看下面的代码吧:

  1. DECLARE @msg varchar(100)  
  2. SET @msg = ''Ahoy!'' cried the captain.'  -- 输出为: 'Ahoy!' cried the captain. 

哈哈,这样就像写存储过程一般,保持相当高的代码清晰度。然而,我们需要关注一个问题:C#字符串长度看下面的测试代码:

  1. private const string SQL_INS_USER1 = @"  
  2.     INSERT INTO t_User([UserName], [Password], Email)   
  3.                 VALUES(@UserName, @Password, @Email)";  
  4.  
  5. private const string SQL_INS_USER2 = @"INSERT INTO t_User([UserName], 
    [Password], Email)   
  6.                 VALUES(@UserName, @Password, @Email)";  
  7.  
  8. private const string SQL_INS_USER3 = @"INSERT INTO t_User([UserName], 
    [Password], Email) VALUES(@UserName, @Password, @Email)";   
  9.  
  10. static void Main(string[] args)  
  11. {  
  12.     Console.WriteLine(SQL_INS_USER1.Length);    //  126   
  13.     Console.WriteLine(SQL_INS_USER2.Length);    //  112  
  14.     Console.WriteLine(SQL_INS_USER3.Length);    //  86  

可以看到三个C#字符串长度分别相差了,14=126-112和26=112-86,注意观察了,在代码编辑器中,SQL_INS_USER1 中第一个换行符号之后,我缩进13个空格(INSERT之前),而SQL_INS_USER2 中第一个换行符号之后,我缩进25个空格(VALUES之前),那么,加上一个换行符,刚刚好 14和26,My GOD!如此编写代码,虽然提高了代码的清晰度和简便性,却无行中带来了另一个问题:字符长度!很多场景下我们希望C#字符串越短越好,如,通过ADO.NET 发送 SQL 语句给数据库执行。
所以还是慎用之!

【编辑推荐】

  1. C# GreetPeople方法
  2. C# Hashtable对象分析
  3. 常用C# Arraylist的介绍
  4. C# Observer设计模式
  5. C#交错数组浅析
责任编辑:佚名 来源: IT168
相关推荐

2009-08-07 14:34:33

C#模式字符串

2009-09-02 16:21:20

C#字符串

2009-08-21 15:46:39

C#空格转义字符

2009-08-07 14:22:56

C#字符串搜索

2009-08-07 13:50:11

C#字符串

2009-08-07 14:15:21

C#字符串分割

2009-08-24 13:04:44

操作步骤C#字符串

2009-08-24 17:06:37

C#字符串

2009-08-06 16:01:09

C#字符串函数大全

2009-08-07 14:46:59

C#匹配字符串

2009-09-02 17:44:41

C#字符串处理

2009-08-28 10:39:37

C#数值字符串

2009-08-07 15:58:54

C#字符串插入html

2009-08-07 15:49:46

使用C#字符串

2009-08-06 17:24:08

C#字符串

2009-09-02 15:53:27

C#判断字符串应用

2009-08-11 10:26:49

C#算法C#字符串反转

2009-09-04 10:26:09

Java和C#字符串类

2009-08-21 15:06:09

C#连接字符串

2009-08-07 14:02:12

C#数据库连接字符串
点赞
收藏

51CTO技术栈公众号