C#
文章平均质量分 59
皮皮#2500
这个作者很懒,什么都没留下…
展开
-
C# 快速释放内存的大数组
C# 快速释放内存的大数组Marshal无unsafe的非托管类大数组Marshal使用Marshal快速申请释放大数组。使用AllocHGlobal()函数开辟空间:static void Main(string[] args){ for (int i = 0; i < 10000; i++) { Foo(); } Console.ReadKey();}private static void Foo(){ int n = 10原创 2020-11-05 16:52:51 · 2181 阅读 · 0 评论 -
C# 使用unsafe指针代替Intptr
C# 使用unsafe指针代替Intptr,进行数据读取和拷贝问题描述IntPtr转byte*访问byte*中的数据参考链接问题描述在C#中,希望读取IntPtr中的数据,有两种安全的方法:①使用Marshal.Copy将IntPtr数据拷贝到byte[]数据类型中,然后读取byte[]中的数据②按照数据类型,使用Marshal.PtrToStructure<T>(offset)直接对数据进行访问方法①②虽然安全,但都存在一些问题:方法①拷贝操作慢,并且额外开辟了空间,方法②中Mar原创 2020-11-04 10:35:45 · 1394 阅读 · 0 评论 -
C# IntPtr数据类型相关操作(byte[]转IntPtr、IntPtr转byte、IntPtr转Stream)
C# IntPtr数据类型相关操作byte[]转IntPtr优点缺点IntPtr转Stream参考链接byte[]转IntPtr//输入buye[],返回IntPtrIntPtr ArrToPtr(byte[] array){ return System.Runtime.InteropServices.Marshal.UnsafeAddrOfPinnedArrayElement(array, 0);}优点不使用Marshal创建新的堆,节省内存开销,也避免忘记释放导致的问题缺点看原创 2020-11-04 09:54:54 · 18616 阅读 · 5 评论 -
C# 多个class之间共享或修改变量
C# 多个class之间共享或修改变量问题描述方法一方法二参考链接问题描述目前有class A和class B两个类,需求是想要将class A中的变量传给class B,然后在class B中更改class A传过来的变量。期望当class B修改完class A传来的变量后,class A中的变量值也发生相应的变化。为了实现这个操作,最直接的想法是定义一个全局变量,这样class A和class B都能直接对它进行更改。但是C#中没有了C++全局变量的概念,所有变量都得放在某一个类里面,因此全局变原创 2020-10-30 09:50:02 · 4621 阅读 · 0 评论 -
C# 带参多线程操作
C# 带参多线程操作启动时创建线程并传递数据创建线程将数据传递到线程多线程操作参考链接启动时创建线程并传递数据创建线程新建 Thread 对象会新建托管线程。 Thread 类包含需要使用 ThreadStart 委托或 ParameterizedThreadStart 委托的构造函数;委托包装在调用 Start 方法时由新线程调用的方法。 多次调用 Start 会导致 ThreadStateException 抛出。线程一旦启动,就无需保留对 Thread 对象的引用。 线程可以继续执行到线程过程原创 2020-10-30 08:46:14 · 1738 阅读 · 0 评论 -
C#调用C++ dll,C++返回类型为char*,并通过指针传出值
C#调用C++ dll,C++返回类型为char*,并通过指针传出值编写生成c++ dllUnity C#中调用C++ dll编写生成c++ dll在项目属性页修改项目类型为动态库(.dll)编写头文件,声明要导出的函数编写一个动态链接库,需要在一个头文件.h中声明你要导出的函数,并在对应的.cpp中实现需要导出的函数。同时也需要定义导出符号,注意导出符号的前缀应保持与项目名一致:在.cpp文件中,include编写好的对应头文件:生成解决方案,在工程目录下找到生成的dll,具体位置可以原创 2020-10-29 09:13:30 · 4265 阅读 · 0 评论 -
C# byte[]转char
C# byte[]转char问题描述解决方法问题描述 在做TCP传输的时候,需要在C#中接到到C++中处理得到的unsigned char类型(范围0~255)数据。C#中接收到的数据类型是byte[],直接在C#中用BitConverter.ToChar函数发现得到的数据与发送的并不一致。解决方法 调试后发现,C++中char类型占的空间是1字节,8位;而C#中ToChar是4字节,32位。直访问byte[]即可,比如要访问的char数据位于byte[]中的第i个位置,直接用byte[原创 2020-08-08 18:11:24 · 4065 阅读 · 0 评论 -
C#与C++数据类型的对应关系,以及将byte数组转换为各种数据类型(int ,float,string)
C#与C++之间类型的对应How to convert a byte array to an int在byte转类型T的过程中,知道byte中存储该数据的起始位置即可,以byte转float为例:float test= System.BitConverter.ToSingle(buffer, 12);其中buffer为byte数组,12表示从第13位开始读4个字节(float占4字节),将获得的数据存入test中。...原创 2020-08-07 21:32:53 · 4748 阅读 · 0 评论 -
UWP KnownFolders.PicturesLibrary访问被禁止:System.UnauthorizedAccessException: Access is denied.
UWP KnownFolders.PicturesLibrary访问被禁止:System.UnauthorizedAccessException: Access is denied.问题描述解决方案参考链接问题描述在UWP应用中,试图访问图片文件夹(C:\Users[用户名xxx]\Pictures)下的一个文件时出现了错误:StorageFolder picturesFolder = KnownFolders.PicturesLibrary;错误描述:System.UnauthorizedAc翻译 2020-07-16 15:52:45 · 244 阅读 · 0 评论 -
C#中的get和set方法与property (属性)
在面向对象编程(OOP)中,是不允许外界直接对类的成员变量直接访问的,既然不能访问,那定义这些成员变量还有什么意义呢?所以C#中就要用set和get方法来访问私有成员变量,它们相当于外界访问对象的一个通道,一个“接口”。先来看一段代码:class Employee { private string name; private byte age; public string Name { get { retu原创 2020-07-11 17:53:26 · 5319 阅读 · 0 评论 -
C#中的private protected internal以及public的区别
C#中的private protected internal以及public的区别访问权限区别protected的用法参考链接访问权限区别private:只能在本类中使用protected:在本类中及其子类中可以使用internal:同一命名空间(程序集)中的类可以使用public:所有类均可使用从上到下,私有程度逐渐降低protected的用法 protected访问修饰符在大多数资料中的定义:访问仅限于包含类或从包含类派生的类型。要搞明白这个定义只靠眼看是不行的,需要实践,现在我们原创 2020-07-11 16:35:02 · 1111 阅读 · 0 评论 -
Unity中引起cpu流水线阻塞的三个原因
1、多个任务在同一时间周期内争用同一个流水段(资源冲突) 例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件。2、数据依赖(数据相关) 比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到A运算完成,两次运算不能同时执行。3、 条件...转载 2020-02-27 20:07:56 · 1008 阅读 · 0 评论 -
C# :Constant value '5000' cannot be converted to a 'byte'(use 'unchecked' syntax to override)
这是因为byte类型取值范围为0~255的int,超过这个范围将出错可以新建一个数组来存放它private int[] convert_d; convert_d[i] = (int)(50000 * file_d[i] / (127.0f))) ;原创 2020-02-26 22:49:08 · 425 阅读 · 0 评论 -
Visual Stdio2015安装Math.NET Numerics库
Visual Stdio2015安装Math.NET Numerics库NuGet Tools安装Math.NET Numerics安装常见错误NuGet Tools安装在VS中选择工具—>扩展和更新—>联机—搜索nuget—>下载Math.NET Numerics安装在 Visual Studio 2015 中,打开 Tools -> Nuget Package...原创 2020-02-25 16:14:37 · 1057 阅读 · 0 评论 -
Unity物体始终处于视口中心
将此代码挂在相机下using System.Collections;using System.Collections.Generic;using UnityEngine;public class Trace : MonoBehaviour { // Use this for initialization void Start () { } // Update is c...原创 2020-02-24 18:16:12 · 1815 阅读 · 2 评论 -
C#调用OpenCV+C++生成的动态库dll
链接:https://www.cnblogs.com/wwwbdabc/p/10860876.html转载 2020-02-22 11:14:44 · 423 阅读 · 0 评论 -
C#调用不同.cs文件下数据的方法
C#调用不同.cs文件下数据的方法在相同namespace下:在不同namespace下在相同namespace下: 我们希望在yuvvideo.cs文件中调用transform.cs文件中的二维向量uv的数据,yuvvideo.cs与transform.cs同在namespace YUV下,在transform.cs中声明向量uv,为公共访问属性:在transform.cs中对uv...原创 2020-02-22 00:56:00 · 8085 阅读 · 0 评论