C#中使用指针的方法-创新互联

这篇文章主要讲解了C#中使用指针的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

站在用户的角度思考问题,与客户深入沟通,找到向阳网站设计与向阳网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名与空间、雅安服务器托管、企业邮箱。业务覆盖向阳地区。

一:背景

1. 讲故事

高级语言玩多了,可能很多人对指针或者汇编都淡忘了,本篇就和大家聊一聊指针,虽然C#中是不提倡使用的,但你能说指针在C#中不重要吗?你要知道FCL内库中大量的使用指针,如String,Encoding,FileStream等等数不胜数,如例代码:

	private unsafe static bool EqualsHelper(string strA, string strB)
	{
		fixed (char* ptr = &strA.m_firstChar)
		{
			fixed (char* ptr3 = &strB.m_firstChar)
			{
				char* ptr2 = ptr;
				char* ptr4 = ptr3;
				while (num >= 12) {...}
				while (num > 0 && *(int*)ptr2 == *(int*)ptr4) {...}
			}
		}
	}

	public unsafe Mutex(bool initiallyOwned, string name, out bool createdNew, MutexSecurity mutexSecurity)
	{
		byte* ptr = stackalloc byte[(int)checked(unchecked((ulong)(uint)securityDescriptorBinaryForm.Length))]
	}
 
 private unsafe int ReadFileNative(SafeFileHandle handle, byte[] bytes, out int hr)
 {
  fixed (byte* ptr = bytes)
		{
			num = ((!_isAsync) ? Win32Native.ReadFile(handle, ptr + offset, count, out numBytesRead, IntPtr.Zero) : Win32Native.ReadFile(handle, ptr + offset, count, IntPtr.Zero, overlapped));
		}
 } 

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:C#中使用指针的方法-创新互联
本文来源:http://scyanting.com/article/dppgcg.html