- 博客(41)
- 资源 (4)
- 收藏
- 关注
原创 C# 通过代码开启自动设置时间和自动设置时区选项
自动设置时间,需要看两个值,一个是W32Time下的Parameters里的Type值还有一个是W32Time本身下面的一个Start的值,这两个值设置自动就可以了,单独设置其中一个是不行的必须同时设置。
2024-08-13 13:50:22 268
原创 A*寻路算法
教程网上都有,BiliBili上有一个讲的比较好的,但是地址忘了,有兴趣了解原理的可以去找一下。下面我就贴一下代码,注释都有,基本功能都有,需要扩展的话也方便。上面的是测试代码,下面的就是供外部调用的代码,初始化使用。然后获取里面的方法就行了,可以直接拿来用。上面是定义的点的坐标,下面是逻辑代码。
2024-02-21 14:20:49 552
原创 C# UDP协议
2、由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务器可以同时向多个客户机传输相同的消息。(多播和广播,TCP不支持)4、吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率,传输带宽,源端和终端主机性能的限制。服务端可以监测连接过来的所有的客户端,然后客户端可以向服务端发消息,客户端直接也可以发消息。3、UDP的数据包的报头很短,只有8B,而TCP的报头有20B,适用于快速传输的应用场合。1、无连接协议,传输数据之前源端和终端不建立连接。5、为广播和多播提供专门服务。
2023-05-16 16:05:34 295
原创 C#阻塞和非阻塞模式及其应用
同步方式:在客户端发送请求后,必须获得服务器的回应之后才能发送下一个请求。此时,所有的请求在服务器得到同步异步方式:在客户端发送请求后,不必等待服务器的回应就能够发送下一个请求。阻塞方式:指在执行套接字的调用函数只有在得到结果之后才会返回,在调用结果返回之前,当前线程会被挂起,即此套接字一直阻塞在线程调用上,不会执行下一条语句。非阻塞方式:指执行套接字的调用函数时,即使不能立即得到结果,该函数也不会阻塞当前线程,而是立即返回。同步和异步属于通信模式,而阻塞和非阻塞属于套接字模式。
2023-05-12 15:41:23 1388
原创 已知两个点,绘制这条线所在的水平面(开始目的是根据网上的内容给LienRenderer添加Collider,结果Collider不匹配,就用了这个方法)
这个问题可以解决给LineRenderer的添加Collider的问题,然后出现很多小的Mesh,在网上找了个合并Mesh的方法。根据P1P2向量和P1P3的向量叉乘之后获取垂直向量,这个向量就是我们想要的水平面的一个点。之后再给这个合并的Mesh添加触发器就可以完美的添加Collider。根据Point1和Point2获取垂直点,高度可以自定义。间接已知条件:这两个点的垂直面Plane1。然后根据向量的方向,依次算出水平面的四个点。这个时候计算Plane1的法线即可。再根据这四个点绘制平面即可。
2022-11-10 18:58:35 141
原创 Unity打开本地文件(不使用dll的情况下)
更全的链接:Unity 选择本地目录选择文件打开指定文件夹(无需引入dll)_love and share-CSDN博客https://blog.csdn.net/qq_39342142/article/details/103781728using UnityEngine;using System.Collections;using System;using System.Runtime.InteropServices;[StructLayout(LayoutKind.Sequenti
2021-11-30 10:13:33 4469
原创 C# 第十六弹 —————— 插入排序
1.数组的第一个默认排序好了,比如数组{1,3,2,5,4,0},1就是默认排序好的数组2.将排序好的之后的第一个元素向排序好的数组里进行比较插入,比如数组{1,3,2,5,4,0},因为1是已经排序好的数组,这时候3就是新元素,需要向排序好的数组里进行插入,这时候比较1和3的大小,看是需要升序还是降序来排列1和3的顺序,这里默认升序吧,这时候数组变成{1,3,2,5,4,0}3.继续向下...
2018-11-05 11:46:30 147
原创 Unity3D的绘制平面的功能
优点:可以用代码绘制任意形状的图形。缺点:这个只是一个平面,在Y轴上是没办法拉伸的,或者有但是我并没有找到,如果有神通广大的阅读者知道的话,可以提示一下。开始上代码,多边形的吧,由三角形扩展来的,所有的图形都是由三角形组成的,如果有看不懂的话可以先研究一下三角形的,可能会有些帮助。 void DrawTriangle(List<Vector3> points){ ...
2018-09-06 10:26:02 2597 6
原创 C# 第十五弹 —————— 浅拷贝和深拷贝
说实话,我也挺晕的,弄了好久才明白过来。先说一下浅拷贝吧。浅拷贝分为两种情况,一种是拷贝值类型,一种是拷贝引用类型。当浅拷贝值类型的时候,浅拷贝就相当于复制一份值出来,注意,这里是值而不是引用,所以当复制出来之后,复制出来的值就与源值是没有关系的了。贴一段代码吧:类 Test:[Serializable]class Test{ public int i = 0;...
2018-08-18 05:23:19 1563 2
原创 C# 第十四弹 —————— 扩展方法
关键字this,这是一个很实用的方法,尤其是Unity3D中更为实用哦。继续举个栗子,eg:class Test{ private double d1; private double d2; private double d3; public Test(double d1, double d2, double d3) { this...
2018-08-18 03:58:48 131
原创 C# 第十三弹 —————— 抽象类和密封类
抽象类abstract和密封类sealed。其实也没啥好说的,记住基本概念就好了。抽象类或者说抽象方法,只能被用来覆写,其中抽象方法是不能拥有自己的方法体的。密封类与抽象类想反,是只能用作单独的类的,不能被覆写。...
2018-08-18 03:43:36 192
原创 C# 第十二弹 —————— 虚方法和覆写方法
关键字virtual和override。属于继承当中一个很重要的知识点。先举个栗子吧。类:BaseClassclass BaseClass{ public void Print() { Console.WriteLine("this is a base class!"); }}类:ChildClassclass ChildClass...
2018-08-18 03:33:12 615
原创 C# 第十一弹 —————— 索引器
开始复习到索引器这一块,刚开始发现好像也没啥用啊,然后上网搜了一下,我的天,我好肤浅。 先肤浅的讲一下索引器。 什么叫索引器呢?索引器就是一组get和set访问器,与属性相似,都不需要重新分配内存。 索引器的声明与属性有相似也有区别的,现在写一下索引器的声明。public T this[int index]{ set { ...
2018-08-15 02:24:52 143
原创 C# 第十弹 —————— 构造函数
构造函数其实有一个我也是今天复习了才发现的,enmmmm,这也看出来我之前是有多么的才疏智浅。 构造函数分三种: 1.默认构造函数 2.实例构造函数 3.静态构造函数 我们先从默认构造函数讲起。 默认构造函数: 如果在类的主体中没有构造函数的情况下,编译器会自动给类生成一个无参数...
2018-08-15 01:37:02 262
原创 C# 第九弹 —————— 属性
哇,心情很差,重写了一遍,之前发的不知道哪里去了。 这里重新写一遍,属性是跟面向对象的封装是有关联的,但是又不仅仅应用于封装。 面向对象的几大原则说一下: 1.单一职责原则 2.开放封闭原则 3.依赖倒置原则 4.里氏替换原则 5.接口隔离原则 而一...
2018-08-15 00:42:47 112
原创 C# 第八弹 —————— 参数
可能很多人不理解为啥子这个要单独开一章,不过我得说一下,这个真的很重要,得搞清楚了,不能混淆了。 参数分三种:值参数,引用参数和输出参数 在这之前先说一下形参和实参的概念。 形参:本地变量,声明在方法的参数列表中,而不是在方法体内。很正规的说法,其实很简单,举个栗子就懂了。 eg:public void SetParameter(...
2018-08-13 10:41:07 158
原创 C#第七弹 —————— 可空类型
这个类型是一个比较特殊的类型,至少我实在实际项目中才遇到过,而在学校学习的时候是不曾遇到过的。 可空类型的定义比较特殊,有个问号,比如:int? myTestInt; 这个就是表示myTestInt这个变量可以为null,而不会报空。...
2018-08-10 19:18:59 171
原创 C#第六弹 —————— 值类型和引用类型
根据我以往的经验,很多的面试题都会出这个问题,值类型和引用类型的区别,希望在看完这篇博客之后,你会了解这个。 值类型: 特征:只需要一段单独的内存,用于存储实际的数据,一步到位的存储。 引用类型: 特征:需要两段内存。 1.第一段是存放在堆...
2018-08-10 19:14:57 117
原创 C#第五弹 —————— 栈和堆
栈: 定义:一个内存数组,是一个后进先出的数据结构。 特征: 1.数据只能从栈的顶端插入和删除 2.把数据放到栈顶称为入栈 3.从栈顶删除数据称为出栈堆: 定义:一块内存区域,在堆里可以分配大块内存用于存储类型的数据对象。与栈不同,堆...
2018-08-10 18:50:17 86
原创 C#第四弹 —————— 类型
定义:一个用来创建数据结构的模板。 组成:1.名称。2.用于保存数据成员的数据结构。3.一些行为及约束条件。 C#有16种预定义类型,其中有六种类型可以由用户自己创建: 1.类类型(class) 2.结构类型(struct) 3.数组类型(array) 4.枚举类型(enu...
2018-08-10 18:36:37 100
原创 C#第三弹 —————— 关键字
定义:关键字是用来定义C#语言的字符串记号。重点:1.关键字不能被用作变量名或任何其他形式的标识符,除非以@字符开始 2.所有C#关键字全部由小写字母组成(但是.Net类型名使用Pascal大小写约定) (PS: Pascal 大小写: 将...
2018-08-10 18:23:42 185
原创 C#第二弹 —————— 标识符
定义:标识符是一种字符串,用来命名如变量,方法,参数和许多后面将要阐述的其他程序结构。(抄自C#图解教程) 命名规范:大小写字母(可以用在任何位置),下划线(可以用在任何位置),数字(不能放在首位,但是可以用在别的任何位置),@字符(只能放在首位,但是不建议使用,会引起歧义的,因为有的地方是用于转义字符的)。 这里需要说明一下哦,就是标识符是区分大小写的,而且每个公司有每个公司的...
2018-08-10 18:12:23 209
原创 我感觉我需要把C#从头到尾再学一遍。从hello world开始吧
从文件 ->新建 -> 项目开始,打开一个界面之后下面的名称,位置,解决方案名称都自己解决哈,我就不多说了。下面开始我的hello world之旅。直接上代码。namespace First{ class Program { static void Main(string[] args) { C...
2018-08-10 17:59:36 177
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人