最近的文章列表

.NET中栈和堆的比较(3)
>repath}articles/?type=detail&id=277">.NET中栈和堆的比较(2) >repath}articles/?type=detail&id=279">.NET中栈和堆的比较(4) 原文出处http://www.c-sharpcorner.com/UploadFile/rmcochran/chsarp_memory401152006094206AM/chsarp_memory4.aspx尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能
2011/4/7 Comments:
.NET中栈和堆的比较(2)
原文出处:http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory2B01142006125918PM/csharp_memory2B.aspx尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我将讲解我们必须要注意的方法传参的行为。在第一部分里我介绍了栈和堆的基本功能,还介绍到了在程序执行时值类型和引用类型是如何分配的,而且还谈到了指针。* 参数,大问题这里有一个代码执行时的详细介绍,我们将深入第一部分出现
2011/4/7 Comments:
.NET中栈和堆的比较(1)
原文出处:http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspx尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我将讲解栈和堆的基本知识,变量类型以及为什么一些变量能够按照它们自己的方式工作。 在.NET framework环境下,当我们的代码执行时,内存中有两个地方用来存储这些代码。假如你不曾了解,那就让我来给你介绍栈(Stack)和
2011/4/7 Comments:
C#位运算
在C#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位。C#支持的位逻辑运算符如表2.9所示。运算符号意义运算对象类型运算结果类型对象数实例~位逻辑非运算整型,字符型整型1~a&位逻辑与运算2a & b|位逻辑或运算2a | b^位逻辑异或运算2a ^ b<< 位左移运算2a<<4>> 位右移运算2a>>2 1、位逻辑非运算位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0。比如,对二进制的10010001进行位逻辑非运算,结果等于011
2011/4/7 Comments:
c#(c++) struct 变量 到 byte[] 变量的转换操作
如果能将 struct 变量 实例转换成byte [] 类型,则可以方便我们将变量存储传递压缩等。以下是我的一个初步实现using System.Runtime.InteropServices;#region 需要转换的结构 [StructLayout(LayoutKind.Sequential, Pack=1)]//struTest变量在内存中的对齐方式 (指针类型转换成功的必要条件) public struct struTest{ public int intId; public int intName; public DateTime dtBegintime; } #endregion/// <summary> /// xamConverter 的摘要说明。 特定结
2011/3/31 Comments:
C#(C++,dll)结构体数组间的转化之定义结构体和byte数组转结构体
解决C#结构体数组间的转化问题的由来:在写C#TCP通信程序时,发送数据时,如果是和VC6.0等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把byte数组转换为结构体,要在C#中发送结构体,可以按以下方法实现:(1)解决C#结构体数组间的转化之定义结构体://命名空间 using System.Runtime.InteropServices; //注意这个属性不能少 [StructLayoutAttribute( LayoutKind.Sequential, CharSet=CharSet.Ansi,Pack=1)] struct TestStruct ...{ public int c; /
2011/3/31 Comments:
C# 秒数转日期_由秒数得到日期几天几小时_当前日期时间,转换为秒
///<summary> ///由秒数得到日期几天几小时。。。 ///</summary ///<param name="t">秒数</param> ///<param name="type">0:转换后带秒,1:转换后不带秒</param> ///<returns>几天几小时几分几秒</returns> public static string parseTimeSeconds(int t, int type) { string r = &qu
2011/3/31 Comments:
C# byte word 变量负值的ToString转换
最近抽空写个C#应用FOCAS1函数的FANUC 18M通过TCP/IP读取机床参数的功能,结果发现读到的负值用简单的 byte.ToString()和word.ToString()方法得不到正确的负值,经过多次改写代码和测试,实现byte word 变量负值的ToString准确转换的代码如下:if (paramater_type == 1) //byte{ if (sign == 1) //变量符号标志1为无符号数据 { mystring = ((ushort)byte).ToString(); } else { mystring = ((byte & 128) != 0) ? (byte - 255 - 1) : byt
2011/3/31 Comments:
C# byte数组转换成字符串
byte数组转换成字符串String s = System.Text.Encoding.Default.GetString(byte[] content,int start,int end) 如果是web传输,两端必须匹配! System.Text.Encoding.Default.GetString(byte[]) 对于简体中文版,相当于System.Text.Encoding.GetEncoding( "GB2313 ").GetString(byte[])
2011/3/30 Comments:
c#(c++/c DLL)尝试读取或写入受保护的内存,这通常指示其他内存已损坏
C#调用非托管DLL中的API: LONG APIENTRY devwdm_GetImageBuffer(BYTE *pImageMem); 函数功能: 采集一帧RGB24图像到内存 pImageMem: 图像缓冲区指针C#调用: C# code[DllImport("devwdm.dll")]public static extern int devwdm_GetImageBuffer(IntPtr pImageMem);于是报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。求助于大家,根据大家的意见,把API中的 BYTE* 转换到C#中,分别用 byte[] 、IntPtr 、ref byte[]、 ...甚至用unsafe了,可是还是报错,有人说内存不
2011/3/29 Comments: