如题所述
string[] s={"a","b"};Console.WriteLine(s);中,调用的是Console.WriteLine(Object)方法;
char[] s={'a','b'}; Console.WriteLine(s);中,调用的是Console.WriteLine(char[])方法。
所以输出的效果不同。
Console.WriteLine (Char[]) 将指定的 Unicode 字符数组(后跟当前行结束符)写入标准输出流;Console.WriteLine (Object) 将指定对象的文本表示形式(后跟当前行结束符)写入标准输出流。
因为没有Console.WriteLine(string[])方法,所以程序将它作为对象处理了
参考资料:http://msdn.microsoft.com/zh-cn/library/system.console.writeline(VS.80).aspx
string[] str1{"adfd","asdfds","dsfsd","sdfsd","adfsd"};
char[] cha1{'a','b','c','d','e'}
只要记着字符串是由多个单个字符组成就行了。
定义之后,我用Console.WriteLine()可以直接输出char类型的但不能直接输出string类型的
追答数据只循环输出,直接输出只能输出类型名称或长度
string[] str={'aa','bb','cc'}
for(int i=0; i<str.Length;i++)
{
Console.WriteLine(str[i].toString());
}
可以按索引输出
Console.WriteLine(str[0].toString()); //输出数组中的索引为0的值!
这个我知道,比如char[] s={'a','b'};
Console.WriteLine(s);
这个就可以不用循环输出,为什么呢
同样的道理!
输出数组都要用索引!
Console.WriteLine(s[0]);
不是的,我写的那个输出ab
如果写成string[] s={"a","b"};
Console.WriteLine(s);
则输出System.String[]
如果想一次输出
Console.WriteLine(s[0].toString()+s[1].toString());
也可用循环输出!
循环输出也可拼接输出!
string str="";
for(int i=0; i<s.Length;i++)
{
str=str+ s[i].toString();
}
Console.WriteLine(str);
System.String[] 你这输出的是类型名称! 并不是直接输出值!