C#格式化字符串净化代码的方法

C#格式化字符串净化代码的方法,在C#编程中,字符串类型是最容易处理出错的地方,其代价往往也很昂贵,在.NET Framework中,字符串是一个不可变的类型,

当一个字符串被修改后,总是创
建一个新的副本,不会改变源字符串,

大多数开发人员总是喜欢使用下面这样的方法格式化字符串:

string updateQueryText = "UPDATE EmployeeTable SET Name='" + name
+ "' WHERE EmpId=" + id;


  上面的代码太乱了,由于字符串是不可变的,这里它又使用了多重串联,因此会在内存中创建三个不必要的字符串垃圾副本。

  最好的办法是使用C#语言中的string.Format方法,因为它内部使用的是可变的StringBuilder,也为净化代码铺平了道路。 

如下:string updateQueryText = string.Format("UPDATE EmployeeTable SET Name='{0}'
WHERE EmpId={1}", name, id);

转载于:https://www.cnblogs.com/joeblackzqq/archive/2010/12/26/1917027.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验二《Java面向对象程序设计》实验报告

一、实验内容 初步掌握单元测试和TDD理解并掌握面向对象三要素:封装、继承、多态初步掌握UML建模熟悉S.O.L.I.D原则了解设计模式 二、实验步骤 (一)单元测试 1.三种代码:伪代码、测试代码、产品代码需求:在一个MyUtil类…

Java 包装类 自动装箱和拆箱

包装类(Wrapper Class) 包装类是针对于原生数据类型的包装。 因为有8个原生数据类型,所以对应有8个包装类。 所有的包装类(8个)都位于java.lang下。 Java中的8个包装类分别是:Byte, Short, Integer, Long, …

Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结

知识背景: 210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。 如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的IP地址。英语叫做binary data。&#xff0…

MySQL中alter table range partition

最近在用MySQL开发新功能时,使用到了alter table range partition的功能,在此总结下mysql innodb支持的alter table range partition相关功能。mysql的版本是8.0.22, os: linux ubuntu 对alter range partition的操作主要由以下几个: analy…

可恶,谁占用了我的80端口?

下午在室友的本本上上网,突然想看一个新闻系统,他的本上没有安装环境,于是下载一个wamp,安装。运行wamp,晕...怎么只有1个服务在运行,导致我的localhost打不开,看了一下mysql服务运行正常,apach…

laravel命令

新建控制器 php artisan make:controller IssuesController 新建控制器并自动生成对应RESTful风格路由相关CURD方法 php artisan make:controller IssuesController -r 新建一个迁移文件 php artisan make:migration create_issues_table --createissues 回滚上一次迁移的内容 …

CMakeList.txt中设置一个可变的变量的值(bool)

在CMakeList.txt中有个bool变量,在debug模式下需要设置为OFF,在其他模式(release、thread、leak)下设置为ON,需要在makefile中将该值设置不同的值,CMakeList.txt中增加的代码如下: IF(CMAKE_BUILD_TYPE STREQUAL &quo…

iOS开发那些事--创建基于故事板的iOS 6的HelloWorld

基于故事板的HelloWorld工程 Storyboard(故事板)是用来替代xib的技术,也是iOS 5最重要的新特性之一。我们用Storyboard(故事板)重构HelloWorld。 使用故事板重构HelloWorld 勾选“Use Storyboards”项。 工程创建完成之…

Android——Ubuntu android NDK 配置

前提工作: 在虚拟机ubuntu下载linux版本,终端cd到解压根目录 第一步:make -v 和 gcc -v 检测 第二步: 检测没有错误,输入命令: ./build/host-setup.sh 会出现错误,必须的。要进行修改:编辑 build/host-setup.sh 修改#!/bin/sh 为#…

.Net 2.0中使用扩展方法

大家都知道扩展方法是不能直接在2.0中使用的需要引用一个‍System.Core的dll不过现在有更加简单的方法了只要在工程项目中加入以下代码就OK啦‍namespace System.Runtime.CompilerServices{[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTarge…

mysql中的if [not] exists

最近在MySQL数据库的基础上开发分布式的数据库,需要支持一个if [not] exists语法。学习了SQL语法解析部分,总结下: 1、在MySQL中,创建表时支持create table if not exists db.table_name .... create table if not exists test1…

oracle Merge 函数

Merge用来从一个表中选择一些数据更新或者插入到另一个表中。而最终是用更新还是用插入的方式取决于该语句中的条件。下面我们简单的举一个例子:SQL> create table merge_test1(a number,b varchar2(20)) 表已创建。SQL> create table merge_test2(a number,b…

Linux下将两个10G的文件打包成一个文件需要多久

Linux下将两个10G的文件打包成一个文件需要多久 | 公云网博客Linux下将两个10G的文件打包成一个文件需要多久发表于 2012 年 9 月 19 日 由 refactor微博上kevin_prajna提了一个问题:“求Linux下一打包工具,需求:能把两个10G的文件打包成一个…

基于美国人口数据分析

https://github.com/jakevdp/PythonDataScienceHandbook 英文看不懂的话请自行选择中文翻译版转载于:https://www.cnblogs.com/Lucifer77/p/10741538.html

MySQL innodb每行数据长度的限制

今天在使用MySQL innodb时,create table时,报出这样的一个错误: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs 查阅MySQL的官方资料才发现&…

Lucene4:创建查询,并高亮查询关键词

1. 要求 环境: Lucene 4.1版本/IKAnalyzer 2012 FF版本/mmseg4j 1.9版本功能:  1).高亮查询演示 注意: 此篇文章开始,索引目录将不再使用示范目录,而是使用真实的数据。即LUCENE_INDEX_DIR "C:\\lucene\\data&…

字典的相关函数

#coding:utf-8""" #第一种写法 """ def func(a,b,c,*,d):print(a,b,c)print(d)func(1,2,3,d4)""" #第二种写法 """ def func(*args,b,c,**kwargs):print(args)print(kwargs)print(b,c)# 函数调用处 func(1,2,3,4,…

python实例31[文件夹清理]

使用: foldercleanup.py -d 10 -k c:\test\keepfile.txt c:\test 表示对c:\test目录只保留最近10天的子文件夹和keepfile.txt中指定的子文件夹。 代码: importosimportos.pathimportdatetime defgetOption(): fromoptparse importOptionParser de…

MySQL中的alter table操作之add/modify/drop列

alter table的操作有增加列、删除列和修改列的长度等 create table t1 (c1 int primary key) engine innodb; // 增加一个列c2 alter table t1 add c2 varchar(16379); drop table t1;create table t1 (c1 int primary key, c2 varchar(50)) engine innodb; // 将列c2长度更…

SUSE Linux启动过程执行脚本顺序

网上看到的,备忘 mbr->grub->menu.lst->vmlinuz(linux)->initrd->etc/inittab->/etc/rc.status->/etc/sysconfig/boot->/etc/init.d/boot.d/*->/etc/init.d/boot.local->/etc/rc.d/rc*.d/*->mingetty->login->/etc/profile.…