仓酷云
标题:
ASP.NET网页编程之.NET中设置团结布局的办法和团结体的特...
[打印本页]
作者:
海妖
时间:
2015-1-16 22:18
标题:
ASP.NET网页编程之.NET中设置团结布局的办法和团结体的特...
计算机发展到这个时候,很多技术日益成熟,想学好一种技术都是不容易的,当你学会用的时候你对它的很多原理可能很不了解)</p>导读:在举行某些算法的C言语编程的时分,必要使几种分歧范例的变量寄存到统一段内存单位中。也就是利用掩盖手艺,几个变量相互掩盖。这类几个分歧的变量配合占用一段内存的布局,在C言语中,被称作“共用体”范例布局,简称共用体,也叫团结体。
在C++中有一品种型叫做团结体(也叫共用体),它的关头字为union,在利用上与布局struct十分类似,能够包括任何的布局范例数据,但它又有一个十分共同的特征,那就是一切的数据都指向一个地点。
这个意义你能够了解为:团结体中的一切数据都是援用一个内存块中不异地点的数据,当我们改动这个团结体内任何一种数据的值时,其他的数据的值城市随之改动。
这关于未知范例的数据十分无效,你可使用团结体装载一个数据,然后剖析其数据是不是无效,大概能够对某些特别的范例举行位运算,猎取其特别地位的数值。
但在VB.NET或C#中,基本没有union关头字让我们申明团结体,但该怎样做才干申明团结体呢?
这必要用到布局属性!
让我们看看怎样将上面的C++团结体代码转换为一个VB.NET的团结布局吧!
union
myunion
{
char
b;
//单字节整数,在c言语顶用char范例来暗示单字节整数
short
s;
//双字节整数
int
i;
//四字节整数
}
这个团结体巨细为4个字节,其各个数据分离暗示为单字节、双字节、四字节的整数,在运转时代其任何数据的改动城市影响其他数据。
ImprotsSystem.Runtime.InteropServices引进运转时非托管数据办理服务
引进布局属性,准确把持布局中元素的地位
<StructLayout(LayoutKind.Explicit)>_
Structure
MyUnion
设置字段的偏移值,设为0便可
<FieldOffset(0)>
Dim
b
As
Byte
单字节整数
<FieldOffset(0)>
Dim
s
As
Short
双字节整数
<FieldOffset(0)>
Dim
i
As
Integer
四字节整数
End
Structure
这就是在.NET中设置团结布局的办法,C#中于VB.NET中的设置办法相同,这里就不做赘述了。
上面来先容团结体的特征使用,就以下面我们方才申明的团结体布局为例,上面的代码将为我们演示团结体的特征:
Dim
MU
As
New
MyUnion
MsgBox(
String
.Format(
"{0}{1}{2}"
,MU.b,MU.s,MU.i))
000
MU.s=Int16.MaxValue
MsgBox(
String
.Format(
"{0}{1}{2}"
,MU.b,MU.s,MU.i))
2553276732767
MU.b=12
MsgBox(
String
.Format(
"{0}{1}{2}"
,MU.b,MU.s,MU.i))
123252432524
MU.i=0
MsgBox(
String
.Format(
"{0}{1}{2}"
,MU.b,MU.s,MU.i))
000
下面的代码能够更直不雅地显现数据在内存中的变更,每当改动团结数据时,其他的数据也会跟着内存的变更而变更。
固然,利用团结体也无限制,那就是.NET的团结体只合用于值范例,没法使用在援用范例和指针中,你没法设置字符串(String)或是数组进进团结范例,这一点必要十分的注重!
固然,.NEt中的团结布局体其实不只要下面的用法,你能够发扬本人的设想力,好比能够:
<StructLayout(LayoutKind.Explicit)>_
Structure
MyUnion2
<FieldOffset(0)>
Dim
b1
As
Byte
<FieldOffset(1)>
Dim
b2
As
Byte
<FieldOffset(2)>
Dim
b3
As
Byte
<FieldOffset(3)>
Dim
b4
As
Byte
<FieldOffset(0)>
Dim
i
As
Integer
<FieldOffset(0)>
Dim
ui
As
UInteger
End
Structure
这个布局能够猎取一个有或无标记的四个字节整数每个字节的数据,而不必要本人写算法来剖析了。
测试代码:
Code:
Dim
MU
As
MyUnion2
MsgBox(MU.i&
":"
&MU.ui)
0:0
MsgBox(
String
.Format(
"{0}{1}{2}{3}"
,Hex(MU.b1),Hex(MU.b2),Hex(MU.b3),Hex(MU.b4)))
0000
MU.b1=255:MU.b2=255:MU.b3=255:MU.b4=255
MsgBox(
String
.Format(
"{0}{1}{2}{3}"
,Hex(MU.b1),Hex(MU.b2),Hex(MU.b3),Hex(MU.b4)))
FFFFFFFF
MsgBox(MU.i&
":"
&MU.ui)
-1:4294967295
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。
作者:
冷月葬花魂
时间:
2015-1-18 17:24
主流网站开发语言之PHP
HP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
作者:
简单生活
时间:
2015-1-22 17:20
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者:
若天明
时间:
2015-1-31 09:03
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
作者:
海妖
时间:
2015-2-6 18:58
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
作者:
山那边是海
时间:
2015-2-18 07:57
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
作者:
小魔女
时间:
2015-3-6 02:31
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
作者:
小女巫
时间:
2015-3-20 01:50
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2