黑马程序员技术交流社区

标题: 关于 单引号'' 双引号问题""(已解决) [打印本页]

作者: 李拴同    时间: 2012-7-31 17:59
标题: 关于 单引号'' 双引号问题""(已解决)
本帖最后由 李拴同 于 2012-7-31 20:56 编辑

单引号'' 双引号""的区别是什么啊  我在运行以下程序时出问题  红色部分  括号里 只能是'' 单引号才可以 双引号出错
static void Main(string[] args)
        {
            string s = "ha,adf,df,sdf,adf,awe";
            string[] s1 = s.Split(',');//按照 ,  分割字符串  为什么必须要是单引号啊 双引号出问题
            foreach (string _chaiFen in s1) { Console.WriteLine(_chaiFen); }
            Console.ReadKey();
        }




在视频上看到的一种方法  string[]s1=s.split(new String[]{","},StringSplitOptions.RemoveEmptyEntries});
不知道理解的对不对啊
作者: 韩迎龙    时间: 2012-7-31 18:11
这里涉及到了char和string类型的区别,你在写split(的时候会有提示信息是char类型,char字符类型是用''的,字符串string类型是用""的
char属于基础类型(C++),在C#中它属于值类型(Value Type)。char类型的长度是固定的,上一篇讲到,在C++中它可能是1个字节,或者2个字节(取决于是否为Unicode Char),而在C#中,它永远是2个字节。
2. string是一个模板类型,也就是一个class(C++)。在C#中它属于引用类型(Reference Type)。string的长度是无法明确取得的。也就是无法通过sizeof来取得,因为它不是一个基础类型,它本身并不固定长度,而取决于内部包含的字符。

char类型:用单引号,例如:'韩'
string类型:用双引号,例如:"韩迎龙"


作者: 蔡尚猛    时间: 2012-7-31 18:14
因为Split()里面传入参数没有对sting类型的数据重载,但是对char类型的参数重载了,而''表示的就是一个char类型的值,所以只能………………
个人浅见,希望能帮你理解!

作者: 郭正续    时间: 2012-7-31 18:51
因为Split括号里面是一个char类型的字符串。在C#中字符串类型的有双引号,char类型的用单引号
作者: 李拴同    时间: 2012-7-31 20:53
谢谢大家 已经知道答案了 其实利用String类型 可以这样
string s="adf,dfdf,sdfa,adf,adf,";
string[] value=s.split(new String[]{",",StringSplitOptions.RemoveEmptyEntries});

不知道理解的对不对 但结果显示是正确的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2