code=C#]byte[] ba = new byte[recordSize];
for (int index = 0; index < recordNum; index++)
{
fs.Read(ba, 0, ba.Length);
System.IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(ba, 0);
trs[index] = (TdxRawRecord)Marshal.PtrToStructure(ptr, typeof(TdxRawRecord));
} RecordOpration ro = new RecordOpration("test");
DataTable recordsTable=ro.Translate(trs);[/code]
问题1
在循环时,ptr地址会不会改变?可不可以把 System.IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(ba, 0);放在循环外面?有没有可能循环过程中发生改变
问题2
DataTable recordsTable=ro.Translate(trs);[/code]
其中RecordOpration 中创建一个DataTable,Translate添加行,然后返回这个DataTable
那调用Translate的方法中,并未新建datatable对象是把,recordsTable只是一个引用,指向ro中的datatable?
对不对
这样好 还是DataTable recordsTable=new DataTable();
ro.Translate(trs);
这样好
for (int index = 0; index < recordNum; index++)
{
fs.Read(ba, 0, ba.Length);
System.IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(ba, 0);
trs[index] = (TdxRawRecord)Marshal.PtrToStructure(ptr, typeof(TdxRawRecord));
} RecordOpration ro = new RecordOpration("test");
DataTable recordsTable=ro.Translate(trs);[/code]
问题1
在循环时,ptr地址会不会改变?可不可以把 System.IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(ba, 0);放在循环外面?有没有可能循环过程中发生改变
问题2
DataTable recordsTable=ro.Translate(trs);[/code]
其中RecordOpration 中创建一个DataTable,Translate添加行,然后返回这个DataTable
那调用Translate的方法中,并未新建datatable对象是把,recordsTable只是一个引用,指向ro中的datatable?
对不对
这样好 还是DataTable recordsTable=new DataTable();
ro.Translate(trs);
这样好
DataTable recordsTable=new DataTable();
recordsTable=ro.Translate(trs);