c# 中几个关于string问题

1、string是一个应用类型,而不是值类型;为什么用起来很像值类型?因为微软对其做了特殊处理。

2、

 1 using System;
 2
 3 namespace testForString
 4 {
 5     class Program
 6     {
 7         class Abc
 8         {
 9             public string A { get; set; }
10
11             public DateTime D { get; set; }
12         }
13
14         static void Main(string[] args)
15         {
16             Abc abc = new Abc();
17
18
19             string str = null + "acb";
20
21             Console.ReadKey();
22         }
23     }
24 }

以上代码中abc变量中abc.A为null,abc.D不是空而是1年1月1日0点0分0秒000。

 string str = null + "acb";

代码并没有抛出异常。而是str被赋值为“abc”

3、如果是这样的一句话,

string str;

string abc=str+null;

运行时,会编译不通过.

4、运行以下代码:

1 string str=null;
2
3 string abc=str+null;
4
5 Console.WriteLine(abc.toString());

不会抛出任何一个异常,在第二行中abc已经被赋值为“”。

5.运行以下一段代码:

 1 using System;
 2
 3 namespace testForString
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             string str = null;
10
11             Console.WriteLine(str.ToString());
12
13             Console.ReadKey();
14         }
15     }
16 }

将会抛出错误:System.NullReferenceException。

能完全答对的举手!!!

时间: 2024-08-25 07:05:13

c# 中几个关于string问题的相关文章

C# 中使用Image.FromFile(string path)后,提示该文件正在被另一进程使用XXX的问题

C# 中使用Image.FromFile(string path)后,提示该文件正在被另一进程使用XXX的问题,是因为对应的文件在一直调用 ,其生成的Image对象被Disponse()前都不会被解除锁定,这就造成了此问题,就是在这个图形被解锁前无法对图像进行操作(比如删除,修改等操作). 此问题可以使用下面三个方法解决问题. 方法1:在要进行文件操作前将Image对象销毁. System.Drawing.Image image = System.Drawing.Image.FromFile(f

Java jre7及以上版本中的switch支持String的实现细节

Java7中的switch支持String的实现细节 作者: zsxwing 更新: 2013-03-04 21:08:02 发布: 2012-04-26 13:58:19 在Java7之前,switch只能支持 byte.short.char.int或者其对应的封装类以及Enum类型.在Java7中,呼吁很久的String支持也终于被加上了. 例如,下面是一段switch中使用String的示例代码. 1 public class Test { 2 3 public void test(Str

C#中是否可以继承String类

C#中是否可以继承String类? 答:String类是sealed类故不可以继承. 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承. 在下面的示例中,类 HoverTree 从类 Keleyi 继承,但是任何类都不能从类 HoverTree 继承. class Keleyi {} sealed class HoverTree : Keleyi {} 还可以在重写基类中的虚方法或虚属性的方法或属性上使用 sealed 修饰符. 这将使您能够允许类从您的类继承,并防止它们重

java中的switch用String作为条件

在开发java程序的过程中,我们遇到了条件判断首选就是switch,但是java中的switch功能不支持字符串作为条件.这时我们该怎么办呢? --使用枚举. 一.枚举简单了解 1.enum是一种数据类型. 特殊:是指在枚举中将变量的值一一列出来,变量的值只限于列举出来的值的范围内. 特殊到一般化:enmu 就是我们根据自己业务需要定义的同"String,int"相同的数据类型.同时enum也就是一种类,可以在enum中定义方法,在使用的时候就按照调用类的方式来调用. 2.定义成枚举的

C#中static void Main(string[ ] args)中的作用及解释

C#中static void Main(string[ ] args)中的作用及解释 static 表示方法是静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,知道程序退出才释放. void 表示方法没有返回值,就是方法没有renturn 关键字. main 是方法名,当然这个方法是特殊的方法,是Main()就是说是主函数,就是整个程序的入口,程序被编译后从这里开始执行,这也是main方法要是static的原因,因为在啥都没做的时候这个函数就得存在. strin

C#中static void Main(string[] args)的含义

C#中static void Main(string[] args)的含义 static:是将main方法声明为静态的. void:说明main方法不会返回任何内容. String[]args:这是用来接收命令行传入的参数,String[]是声明args是可以存储字符串数组. 运行时会弹出命令窗口,你可以在那里输入一些参数,string[] args 指的就是你在命令窗口输入的参数. 也就是命令行参数. args是用来处理命令行参数的.命令行参数,就是你运行这个程序的时候给它传的参数.它是可选项

js中字符替换函数String.replace()使用技巧

String.replace( ) 简介 语法: var strings = string.replace(regexp, replacement) regexp :您要执行替换操作的正则表达式,如果传入的是一个字符串,那就会当作普通字符来处理,并且只会执行一次替换操作:如果是正则表达式,并且带有 global (g) 修饰符,则会替换所有出现的目标字符,否则,将只执行一次替换操作. replacement :您要替换成的字符. 返回值是执行替换操作后的字符串. 11 String.replac

c++中double转换成string型(浮点数的格式化)

在日常编程中--包括对话框.关系数据库.金融程序.SMS程序及一切处理数据文件的程序,需要控制小数点后的小数位的情况非常普遍,本文中将要讲 解如何用简单的方法来控制小数位,另外,还要揭开字符串及数据精度的一点点小秘密. 问题的引出 如有一个函数,其可接受一个long double参数,并将参数转换为字符串,结果字符串应保留两位小数,例如,浮点值123.45678应该生成“123.45”这样的字符串.表面上看来 这是一个意义不大的编程问题,然而,如果真要在实际中派上用场,函数应设计为具有一定弹性,

Android - SpannableString或SpannableStringBuilder以及string.xml文件中的整型和string型代替

背景介绍 在开发应用过程中经常会遇到显示一些不同的字体风格的信息犹如默认的LockScreen上面的时间和充电信息.对于类似的情况,可能第一反应就是用不同的多个TextView来实现,对于每个TextView设置不同的字体风格以满足需求. 这里推荐的做法是使用android.text.*;和 android.text.style.*;下面的组件来实现RichText:也即在同一个TextView中设置不同的字体风格.对于某些应用,比如文本编辑,记事本,彩信,短信等地方,还必须使用这些组件才能达到

Python2爬虫获取的数据存储到MySQL中时报错"Incorrect string value: '\\xE6\\x96\\xB0\\xE9\\x97\\xBB' for column 'new' at row 1"的解决办法

由于一直使用python3进行编码,在使用Python2时,将爬虫数据连接数据库进行存储时,出现如上的报错,经查资料 是数据库编码问题. 如下转自:http://www.cnblogs.com/liuzhixin/p/6274821.html 的博客,在此感谢博主的慷慨分享之情. 错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范).正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实际上是它对应的是智