网站建设资讯

NEWS

网站建设资讯

vb.net数组深拷贝 C#数组拷贝

vb.net中嵌套结构体传值复制的问题

因为数组是引用类型,所以直接赋值会出现这种情况

创新互联是一家集网站建设,石楼企业网站建设,石楼品牌网站建设,网站定制,石楼网站建设报价,网络营销,网络优化,石楼网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

可以在kb=k后单独复制数组

kb.rr=k.rr.Clone

这样两个数组就是独立的了

之所以先kb=k是为了当其含有多个成员时值型成员可以直接复制,只需Clone引用类型的就行了

如何把VB.NET内部资源文件复制到磁盘上

可以查看附件,或则使用以下代码。应该注释的满全了。

随便建一个窗口工程,窗口代码帖入以下代码。

Imports System.IO

Imports System.Text

Imports System.Reflection

Public Class Form1

Const ResName As String = "123.txt" ' 需要保存的资源名

Const BufferSize As Integer = 4096  ' 复制时缓冲的大小

Private Sub Demo()

' 变量声明

Dim strDisplayText As StringBuilder ' 保存输出信息

Dim strResName As String            ' 保存目标资源的名称

' 变量初始化

strDisplayText = New StringBuilder()

strResName = String.Empty

' 获取所有资源

strDisplayText.AppendLine("文件中存在以下资源:")

For Each strName As String In Assembly.GetExecutingAssembly.GetManifestResourceNames()

strDisplayText.AppendLine("  "  strName)

' 获得目标资源的全名

If strName.EndsWith("."  ResName) Then

strResName = strName

End If

Next

' 目标资源不存在

strDisplayText.AppendLine()

If strResName = String.Empty Then

strDisplayText.AppendLine("抱歉,没有找名为"""  ResName  """的资源")

Else ' 复制资源的代码

' 打开资源文件,在End Using的时候自动关闭。

Using ms As UnmanagedMemoryStream = Assembly.GetExecutingAssembly.GetManifestResourceStream(strResName)

' 打开磁盘文件,在End Using的时候自动关闭。

Using fs As New FileStream("C:\"  ResName, FileMode.Create)

' 变量声明

Dim Buffer(BufferSize - 1) As Byte  ' 复制文件时的缓冲数组

Dim ReadCount As Integer            ' 此次读取数据的数量

' 还有数据可以读取的情况,一直循环

ReadCount = ms.Read(Buffer, 0, BufferSize)

While ReadCount  0

fs.Write(Buffer, 0, ReadCount) ' 写入到磁盘文件

ReadCount = ms.Read(Buffer, 0, BufferSize)

End While

End Using

End Using

strDisplayText.AppendLine("文件已经复制完毕。")

End If

' 显示消息

MessageBox.Show(strDisplayText.ToString())

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Call Demo()

End

End Sub

End Class

请教VB一个数组复制的问题

如果你用的是VB6.0的话,那有一个相当简单的方法来完成数组复制操作。即使用VB6.0中提供的动态数组增强功能。

它的使用也很简单,首先是声明数组,然后是直接赋值。例如对于你上面的提供的代码,改为使用动态数组增强功能的话,代码如下:

Dim a() As Single '注意a数组必须是动态数组,如写为Dim a(1000000) As Single则错误

Dim b(1000000) As Single

Dim i As Integer

for i=0 to 999999

a(i)=b(i)

next i

a=b '直接赋值,够简单吧

必须注意的是,这里作为目的数组的a不能为固定数组(即在声明时就指定了大小的数组),否则会引发错误。


网页标题:vb.net数组深拷贝 C#数组拷贝
本文网址:http://cdweb.net/article/hihghj.html