编程基础
主要是编程方面的基础知识,大佬勿扰...
臣定保幼主周全ぃ
这个作者很懒,什么都没留下…
展开
-
CSharp特性详解
前言CSharp的特性(Attribute)是比较难以理解的技术,写代码时通常都要求写注释,为了是让其他程序猿快速理解代码含义,但是注释是写给'人'看的,突发奇想下:能不能写出给C#编译器看的注释,比如在某些代码段上打上标记,让编译器看到标记后,做出不同的运行效果?其实…这就是特性。1.Serializable特性分析为什么Serializable特性作为小节1讲解呢?因为它是比较常见的特性,在网络对象进行传输时和数据库进行对象保存时,使用序列化特性后的类、结构体、枚举等等都可实现序列化操作原创 2020-08-23 12:19:13 · 3439 阅读 · 0 评论 -
编码解码和协议分析
前言计算器显示的字符最终存在内存里都是以二进制码形式的,最开始的计算机字符用ASCII编码去存储,ASCII编码只能表现256个字符,但是经过计算机不断发展,编码方式越来越多,于是编程时就需要注意不同环境的编码格式,防止乱码…1.编码发展史开始计算机只在美国用。八位的字节可组合出256(2的8次方)种不同的状态。把其中编号从0开始的32种状态分别规定了特殊的用途,又把所有的空格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第127号,计算机就可以用不同字节来存储英语了。于是原创 2020-08-23 12:17:41 · 1171 阅读 · 0 评论 -
游戏中的数学
1.游戏中的矢量矢量的加减公式:a+b=(a₁+b₁,a₂+b₂,a₃+b₃)a-b=(a₁-b₁,a₂-b₂,a₃+b₃)示意图:作用:游戏中可用于计算玩家a到怪物b的位移。矢量的点积公式:a.b=(a₁,a₂,a₃).(b₁,b₂,b₃)=a₁b₁+a₂b₂+a₃b₃a.b=|a||b|cosθ示意图:作用:由结果而言,a.b就是a在b方向上的投影,...原创 2020-04-06 18:38:53 · 917 阅读 · 0 评论 -
什么是DrawCall?
前言游戏开发圈里的人一定听过优化游戏要降低DrawCall,这样到底什么是DrawCall呢?Unity中应该如何降低DrawCall,这里就来讲解一下关于DrawCall知识点。1.是谁拖了后腿?通俗的来说就是Cpu:(#`O′)喂你好,是Gpu吗?快点醒醒我这里又有画画的任务了(Cpu调用Gpu的次数),打一个比方比如上传很多文件到百度云或其他地方时,都会把它压缩到一个文件夹里...原创 2020-04-06 18:37:22 · 11850 阅读 · 1 评论 -
第一章(学海无涯) 编程技巧
1.不要怕使用全局变量不要怕使用全局变量,许多视频游戏不让对时间要求严格的函数使用参数,而是使用一些全局变量来传递参数,例如下面函数的代码:void Print(string str){ cout<<str<<endl;}由于参数要压栈和出栈,执行这个函数体所需的时间小于调用函数所需的时间,在这里没有什么硬性要求下,建议使用全局变量,然后在调...翻译 2019-02-28 19:11:04 · 159 阅读 · 0 评论 -
C++指针的深度理解
笔者会从各种的例子和面试题入手,将逐步去分析指针的知识点和指针的一些高级的用法。第一个例子,也许一些人会疑惑为什么t是512了,先看下面的图从笔者自己画的图分析,引用(&)这个符号返回的是这个类型最低位的地址而不是最高位数的地址,还有就是int型指针和char型的指针的区别到底在哪里?不同类型的指针唯一区别就是偏移量的不同,它们存的都是地址,但是char型指针偏移量是1个字节...原创 2018-06-27 20:41:44 · 429 阅读 · 0 评论 -
C++中结构体与类到底有什么区别
#include<iostream>using namespace std;typedef struct DemoS{ private: char c; char x; int y; public: DemoS(){} DemoS(char c,char x,int y):c(c),x(x),y(y) ...原创 2018-06-25 21:12:02 · 3674 阅读 · 0 评论 -
C#的垃圾回收机制
前言大家都知道使用高级语言的时候,我们不必担心内存回收的问题,因为有垃圾回收器会自动处理所有内存,虽然不必自己手动去管理内存,但是我们还是需要详细去理解一下垃圾回收机制到底发生什么事情?1.栈存储在处理器的虚拟内存中,有一个区域称为栈,栈存储的是值数据类型。另外,在调用一个函数的时候,函数的参数是使用栈副本的拷贝,可能有人说了不是有引用传递吗?这么感觉你说的好像只有值传递,请客官看完这...原创 2019-12-28 20:00:34 · 570 阅读 · 0 评论 -
C#的枚举小技巧
1.枚举的基本知识点枚举是什么呢?枚举是一个值类型,包含一组命名的常量,如以下的代码:public enum Color{ Red, Green, Blue,}这里是最简单的定义枚举的方式,没有设置任何的东西,所以默认情况下,enum的类型是int型的,并且是从0开始往下递增地,但是我们可以修改以上说的东西,比如以下代码:public enum Co...原创 2019-12-21 18:51:18 · 373 阅读 · 0 评论 -
C#字符串小知识点
前言大家都知道字符串是一个类,也就是说它的赋值将是引用类型的,但是想必大家都使用过,发现事情好像没有想象的如此简单,赋值的时候并没有一起改变,我们来看看究竟发生了什么。1.字符串之间的赋值using System;using System.Runtime.InteropServices;namespace StringTestPro{ class Program ...原创 2019-12-21 12:59:12 · 196 阅读 · 0 评论 -
同步与异步多线程的区别
先需要讲解一下计算机的基本概念:进程:一个程序在操作系统上运行时,占用操作系统的资源,起名叫进程。线程:线程是程序执行的最小单位,进程在执行任何一个操作或者响应,都是由线程完成的,执行过程中,使用到操作系统的资源合集,就叫线程,进程可以包含多个线程或者单单一个主线程(也称作UI线程),线程一定属于进程。多线程:在操作系统里,一个进程里面有多个执行流并发执行。在C#里Thread是.Ne...原创 2019-06-12 09:02:57 · 944 阅读 · 0 评论 -
C#的委托和事件详细分析
看到网上的一些对委托与事件的解释,感觉会有点误导,所以这里准备详细的解剖一下委托与事件,先提出几点的问题,1.委托是相当于C++中的函数指针吗?2.事件和委托的区别是什么,Action和Func是什么?3.委托有哪些高级点的用法?1.委托是一个类,不是函数指针首先直接上图就是经过反编译DLL的委托语法:本来的语法是delegate void simpleHandle(),说明使...原创 2019-06-16 21:09:44 · 234 阅读 · 0 评论 -
C#静态拓展方法的用法
最近想拓展网上下载来的动态链接库,因为下载来的动态链接库缺少一些功能不能满足我的需求,我要想出比较好的方法去拓展这个动态链接库,查找了一下,最好的方法就是使用这个静态拓展方法了,接下来给大家展示一下如何使用这个的,代码块如下:using System;namespace ConsoleApp1{ class Program { static void Ma...原创 2019-06-07 21:10:35 · 2185 阅读 · 0 评论