• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#中string用法实例详解

C#中string用法实例详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#将string转换成int,c#中string转int,c#string转int,c#string转byte,c#string.format等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在进行C#程序设计时,用的最多的莫过于string了,但有些时候由于不仔细或者基础的不牢固等因素容易出错,今天本文就来较为详细的总结一下C#中string的用法。具体如下:

1.string是一个引用类型,平时我们比较string对象,比较的是对象的值而不是对象本身

如下面代码所示:

string strA="abcde";
string strB="abc";
string strC="de";
Console.WriteLine(strA == (strB+strC));//true
Console.WriteLine((object)strA == (object)(strB+strC));//false
</div>

因为字符串内容相同但引用的不是同一个实例

2.string对象是不可修改的

如下代码所示:

string strA="abcde";
strA="aaaaa";

</div>

从表面上看似修改了strA的内容,事实上"abcde"没有被修改,而是从新创建了一个对象"aaaaa",然后把该对象的引用赋给strA,最后"abcde"会被作为垃圾回收。

3.string的创建

直接赋值:

string strA="abcde";//创建一个内容为abcde的string对象,然后将该对象的引用赋给strA
</div>

构造:

char[] arr={'a','b','c','d','e'};
string strA=new string(arr);//这里只列举一种
</div>

注意:没有String str=new String("abcde");这样的构造,string 是 .NET Framework 中String的别名。

4.string参数传递

string是引用类型,我们试图在一个函数里改变这个值

测试代码如下:

static void Main(string[] args)
{
  string strA = "abcde";
  Deal(strA);
  Console.WriteLine(strA);
  Console.ReadLine();
}
static void Deal(string str)
{
  str = str.Substring(0, 2);
}

</div>

运行结果:abcde

原因是通过值传递引用类型的参数时,有可能更改引用所指向的数据,如某类成员的值。但无法更改引用本身的值,通过ref关键字传递参数可解决该问题。

修正后的代码如下:

static void Main(string[] args)
{
   string strA = "abcde";
   Deal(strA);
   Console.WriteLine(ref strA);
   Console.ReadLine();
}
static void Deal(ref string str)
{
   str = str.Substring(0, 2);
}

</div>

结果:ab

此时传递的是引用本身,而不是副本

5.null 字符串和空字符串

null 字符串:没有分配内存;空字符串分配了内存,但内存里面没有数据.

测试代码如下:

static void Main(string[] args)
{
  string strA = "1";
  string strB = string.Empty;
  string strC = null;

  Console.WriteLine(int.Parse(strA));//正确
  Console.WriteLine(int.Parse(strB));//输入字符串的格式不正确
  Console.WriteLine(strC.ToString());//未将对象引用设置到对象的实例。
  Console.ReadLine();
}

</div>

内置方法字符串是否为 null 或为空:

IsNullOrEmpty等同于 if (str == null || str.Equals(String.Empty))
IsNullOrWhiteSpace等同于  if (str == null || str.Equals(String.Empty) || str.Trim().Equals(String.Empty))

6.StringBuilder

现看如下测试代码:

string strA="abc"
for(int i=0;i<10000;i++)
{
  strA+="abc";
}
Consolse.WriteLine(strA);

</div>

尽管该代码会出现以使用字符串串联来将新的字符追加到命名为 strA 的现有字符串,它实际上会为每个串联操作创建新的 String 对象。大大的降低了性能。可使用 StringBuilder 类代替String 类多次更改字符串值,StringBuilder 对象是可变的,当进行追加或删除字符串中的子字符串时,不会创建新的对象,而是在原来的对象上进行修改。 完成 StringBuilder 对象的值的修改后,可以调用其 StringBuilder.ToString 方法将其转换为字符串

修改后的测试代码如下:

StringBuilder strA=new StringBuilder();
for(int i=0;i<10000;i++)
{
strA.Append("abc");
}
Consolse.WriteLine(strA.ToString());

</div>

相信本文所述实例对于大家牢固掌握C#的string用法能起到一定的帮助和借鉴作用。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# 为String类型增加方法详解
  • C#中String类常用方法汇总
  • C#中string和StingBuilder内存中的区别实例分析
  • C#中String与string的区别分析
  • C#中string用法实例详解
  • c#中 String和string的区别介绍

相关文章

  • 2017-05-28提权函数之RtlAdjustPrivilege()使用说明
  • 2017-05-28C#使用SQLDMO操作数据库的方法
  • 2017-05-28C#列出当前系统所有正在运行程序的方法
  • 2017-05-28Windows 8 Metro用C#连接SQLite及创建数据库,数据表的增删改查的实现
  • 2017-05-28C#组件FormDragger窗体拖拽器详解
  • 2017-05-28C# ComboBox的联动操作(三层架构)
  • 2017-05-28C#控制台下测试多线程的方法
  • 2017-05-28C#实现listview Group收缩扩展的方法
  • 2017-05-28C#启动外部程序的几种常用方法汇总
  • 2017-05-28winform调用javascript的小例子

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 使用C#获取系统特殊文件夹路径的解决方法
    • Winform学生信息管理系统各子窗体剖析(3)
    • C# 类的声明详解
    • 深入理解C#中new、override、virtual关键字的区别
    • 深入浅析C#泛型类型
    • C# Redis学习系列(二)Redis基本设置
    • 关于System.Convert的那些事儿
    • C#基础知识系列八const和readonly关键字详细介绍
    • C#编写的生辰八字计算程序
    • C#圆角窗体简单实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有