楼主对引用类型和值类型还是区分不清,char[] c1=c2之后,对c1和c2任何的修改都会改变原始数据,执行过Array.copy后才会复制的。
而且字符串在C#中已经不是字符数组了,不可以直接Copy的。
如果源地址和目标地址为整型和字符(或其他类型的)进行复制,可以使用ArrayList进行存储。或使用object[]
原因很简单,char[]中每个元素1字节,不可能装得下int[]中的元素!
楼主对引用类型和值类型还是区分不清,char[] c1=c2之后,对c1和c2任何的修改都会改变原始数据,执行过Array.copy后才会复制的。
而且字符串在C#中已经不是字符数组了,不可以直接Copy的。
如果源地址和目标地址为整型和字符(或其他类型的)进行复制,可以使用ArrayList进行存储。或使用object[]
原因很简单,char[]中每个元素1字节,不可能装得下int[]中的元素!
楼主对引用类型和值类型还是区分不清,char[] c1=c2之后,对c1和c2任何的修改都会改变原始数据,执行过Array.copy后才会复制的。
而且字符串在C#中已经不是字符数组了,不可以直接Copy的。
如果源地址和目标地址为整型和字符(或其他类型的)进行复制,可以使用ArrayList进行存储。或使用object[]
原因很简单,char[]中每个元素1字节,不可能装得下int[]中的元素!
版主所说的我承认,但是,我的初衷是使用Array.copy函数。
msdn上的相关例子是这样定义的:Array myIntArray=Array.CreateInstance( typeof(System.Int32), 5 );
Array myObjArray = Array.CreateInstance( typeof(System.Object), 5 );
Array.Copy( myIntArray, myIntArray.GetLowerBound(0), myObjArray, myObjArray.GetLowerBound(0), 1 );
这个是使用array。copy 从int拷贝至obj数组。 我的理解是 obj数组对copy方法要求没有限制,应该不会有类型转换的问题。
我想请教一下 有没有直接在不同类型数组中copy的方法,例如使用array。copy函数。
并且不是使用 Array myObjArray = Array.CreateInstance( typeof(System.Object), 5 ); 这样定义数组的方法。
数组:int[] i=new int[3];这样的定义的数组之间是否可以 copy?
如果说char[]的元素比较小 ,那么从char[]copy至int[]数组呢?
编译的时候主要是数组类型的问题。
使用array 。copy
版主所说的我承认,但是,我的初衷是使用Array.copy函数。
msdn上的相关例子是这样定义的:Array myIntArray=Array.CreateInstance( typeof(System.Int32), 5 );
Array myObjArray = Array.CreateInstance( typeof(System.Object), 5 );
Array.Copy( myIntArray, myIntArray.GetLowerBound(0), myObjArray, myObjArray.GetLowerBound(0), 1 );
这个是使用array。copy 从int拷贝至obj数组。 我的理解是 obj数组对copy方法要求没有限制,应该不会有类型转换的问题。
我想请教一下 有没有直接在不同类型数组中copy的方法,例如使用array。copy函数。
并且不是使用 Array myObjArray = Array.CreateInstance( typeof(System.Object), 5 ); 这样定义数组的方法。
数组:int[] i=new int[3];这样的定义的数组之间是否可以 copy?
如果说char[]的元素比较小 ,那么从char[]copy至int[]数组呢?
编译的时候主要是数组类型的问题。
使用array 。copy
基本上能夠隱試轉換的
完全可以array.copy
由于object数组的元素可以接受所有的数据类型,所以可以把object数组最为目的接收者,我这里没有运行环境,你可以试着把short数组赋给int数组,由于char[]是字符类型,所以和整型直接赋值可能会出错。
基本上能夠隱試轉換的
完全可以array.copy
array。copy的时候报类型转换有问题,不知道怎么改?
有没有代码贴一下 ?谢谢。
不是
string s=“asdfa”s.padleft(16)
char[16] ch
array,copy(s,ch,16)
这样字的,如果是
array,copy(s.tochararray(),ch,16)
就不用了,因为 源数组已经是char[]的数组了,不是我所理解的不同类型数组之间的转换使用array。copy()。
主要是想看能不能直接转换的数组类型。
谢谢。。。
由于object数组的元素可以接受所有的数据类型,所以可以把object数组最为目的接收者,我这里没有运行环境,你可以试着把short数组赋给int数组,由于char[]是字符类型,所以和整型直接赋值可能会出错。
谢谢,不过现在是编译的时候就有问题。
因为array。copy要求system.array类型的数组,
编译提示说数组类型不符合。
char-byte似乎不行,长度好像不够。
“string其實是引用類型 無法隱式轉換”那你的意思应该是说string 是无法用array。copy这个函数进行复制转换的是吧。
谢谢你了。。。
C#现在默认是UNICODE2字节表示所有的字符
比如汉字"中"就可以直接赋予一个char
它的值好象是2万多吧
在C#.NET里一个char是占用2个BYTE的
而以前的很多环境里都是一个字节的
比如C里一般是一个字节的
这个时候表示汉字要用2个BYTE表示
有高位低位之说
比如 一个汉字是 E786 那么它的值就是 E7*256+86
因此同样是一个汉字在以前的环境里和在C#.NET里的值是不一样的