C#
有点强
这个作者很懒,什么都没留下…
展开
-
查看dll文件的两种办法
VS查看dll文件的源代码方法前言嗯~ o( ̄▽ ̄)o 那个啥乡亲们 兄弟们 我回来了你们有没有想过看dll 然后发现dll 不能看见方法体内部怎么实现。。就很难受,你都给我用了还不让我瞧瞧 真小气O(∩_∩)O 然后呢 我就在无意中发现了篇别人写的博客,话说事情的经过呢是这样的,当时正在摸鱼(困的一批)然后呢 看了一篇文章无意中发现了这个功能,然后就按照操作,一步一步的做就成功了,在此把参考的这个博客粘贴在下面方便大家观看 我这就不一步步说了 挺简单的办法就能解决https://blog.cs原创 2021-09-16 19:22:22 · 37205 阅读 · 2 评论 -
设计模式和设计原则
六大设计原则单一职责原则 (SRP)只做一件事,不要所有事都掺乎到一起一个模块只做一件事 按功能分一个类只做一件事 一个脚本就放一个类 一个类制作一个功能 也看代码体量一个方法只做一件事多态是解决分支的好办法using UnityEngine;/* 有两种攻击方式 一种近战 一种远程*/#region 没有遵循单一职责的 public enum HeroType { CloseCombat,//近战 LongDistance//远程}原创 2020-10-18 16:44:41 · 144 阅读 · 0 评论 -
特性 异常处理
特性字段上添加的 可以显示在监视面板比如有 Header Range HideInInspector Json解析里 JsonUtility里的System.Serializable 这个查询需要在MSDN里查询查询办法 unityAPI 打开 脚本API 打开 UnityEngine 打开 Attributes 里面都是 特性需要通过反射手段 获取三个预定义特性 .Net 写的 AttributeUsage 自定义特性 Conditional 条原创 2020-10-14 09:20:22 · 149 阅读 · 0 评论 -
反射 代码架构
反射慎用 !!! 一般用在实在是正常手段不好解决时,在考虑反射using UnityEngine;//普通的类class Hero { //特征 //字段 public string name = "xiaoming"; public bool isMan = true; public char sex = 'M'; //行为}//面向对象的编程语言做成一个类//类 方法 属性 字段 委托public class Class { //描述类别的原创 2020-10-13 11:16:17 · 132 阅读 · 2 评论 -
快捷键
快捷键Ctrl + A 全选Ctrl + C 复制Ctrl + V 粘贴Ctrl + X 剪切(在VS编辑器里可直接剪切一行,变相的删除功能,就不用按退格键一个一个删除了)Ctrl + S 保存Ctrl + Z 撤销Tab 一个Tab距离(在编译器里有效)Tab + shift 回退一个Tab(在编译器里有效)Ctrl + k + F 自动对齐(在编译器里有效)Ctrl + k + C 注释选中的代码(在编译器里有效) Ctrl + k + U 取消注释(在编译器里有效)C原创 2020-10-01 16:19:54 · 109 阅读 · 0 评论 -
正则表达式
正则表达式正则表达式(Regular Expression)是一种文本模式,由普通字符与元字符,限定符组成。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。元字符字符描述^匹配输入字符串的开始位置$匹配输入字符串的结尾位置。\w匹配字母、数字、下划线。\d匹配一个数字字符。\n匹配一个换行符。\s匹配任何空白字符,包括空格、制表符、换页符等等。\S匹配任何非空白字符。.匹配除换行符 \n 之外的任何单字原创 2020-07-31 15:28:48 · 110 阅读 · 0 评论 -
多线程 委托 匿名函数 拉姆达 事件
多线程using System;using System.Threading;//引用的命名空间 这个命名空间有C#对线程的各种操作namespace aaa//瞎起的名字哈哈{ class Program { static void Test() { Console.WriteLine("Test"); } static void Main(string[] args) {原创 2020-07-30 21:44:37 · 311 阅读 · 0 评论 -
泛型 集合 堆栈 队列 哈希表 字典
小例子/*(1)创建小孩Baby类,实现ISpeak接口(2)定义求面积的接口IArea与求体积的接口IVolumn, 定义长方体类分别实现IArea与IVolumn接口(3)定义接口IBattle,该接口包含功能Attack(),Move(),Jump(); 定义接口IRest,该接口包含功能SitDown(),Sleep()。 定义接口IPlayer,接口IPlayer继承IBattle与IRest。 定义Soldier类实现IPlayer接口*///(1)原创 2020-07-29 21:46:54 · 255 阅读 · 1 评论 -
抽象类 静态类 设计模式 索引器 命名空间 运算符重载 接口
抽象类关键词abstract//抽象方法的声明abstract class Player(){ public abstract void Trian();}//子类里边class FootballPlayer : Player{ public override void Train() { Console.WriteLine("正在训练运球..."); Console.WriteLi原创 2020-07-27 23:02:03 · 108 阅读 · 0 评论 -
字符串 StringBuilder 重载 递归
字符串Person p1 = new Person();Person p2 = new Person();这两句话肯定会在堆里开辟两个空间存储string str = "abc";str = "abcd"; 这句话本身string 已经复制abc了,然后我又改了str的值 那先前的abc就没用了,就会进入垃圾回收机里(C#封装了看不到的)正常的话肯定会开辟多个空间,用不到的字符串就会过段时间清除,但是经过特殊手段的字符串就不一样了string str1&nbs原创 2020-07-25 12:03:21 · 170 阅读 · 0 评论 -
构造函数 封装 继承 多态
构造函数一个类里可以有多个构造函数,参数和数量不同House wanda = new House(); 构造函数加括号的意义是实例化成功了,会自动调用构造函数一般都是public ---> public Person() <---方法名必须与类名一样,且没有返回值 { }带参构造函数public Person(string name, int age){ t原创 2020-07-23 23:09:46 · 161 阅读 · 0 评论 -
属性 方法参数 小例子 变量作用域
属性为啥要属性呢,比如我在类里写了个public string name = “××××”; 那我在别的地方就可以修改他,问题是我不想让别人修改,可是我写private别人又不能访问,该怎么办呢?这就需要属性通过get和setprivate string name;//随便写的一个字段public string Name{//属性 get{//get 读取字段 return name; } set{//set 写入字段 name = value;//这个value 需要的时候改成自己要用原创 2020-07-22 20:41:38 · 141 阅读 · 0 评论 -
面向对象 类 方法
面向对象这玩意贼难,哈哈 之前写的那些都是面向过程的,C#是高级语言,他是面向对象。不过不用慌,先举一个简单的例子解释一下面向过程与面向对象。假如说今天我中午饭想吃一盘炒肉。。。嗯,这句话的需求是想吃炒肉。如果我们用之前面向过程的思维去考虑的话,那我们首先要做的是先拿钱,然后去市场买肉,然后在带回家切肉,然后在放到锅里炒肉,最后开吃。这种就叫面向过程,因为所有的事情都要自己去一步一步做。 那么如果我们要用面向对象的思维,应该这样思考,我要先找能做炒肉的饭店,然后到了那边直接叫服务员,然后点一盘,等原创 2020-07-21 21:29:48 · 296 阅读 · 0 评论 -
值类型 引用类型 排序 二维数组 foreach遍历
值类型与引用类型值类型:int bool ······ 枚举 结构体 这些都是值类型引用类型:字符串 数组 类要说这个就要从CPU说起,CPU里有缓存 分一级缓存,二级缓存其中一级缓存速度最快栈放在一级空间堆放在二级空间可以参考上图(一波灵魂的画图。。。)而值类型与引用类型最大的区别就是 值类型在栈空间里开辟,如果我现在这样写int a = 10; int b = a;这是在做赋值把a的值赋给b 那么他会在栈里边在开辟一块空间来存储 虽然存储的结果是一样的,但是我修改任何单独的一原创 2020-07-20 23:13:11 · 171 阅读 · 0 评论 -
C# 枚举 结构体 数组
枚举表示类型,枚举是自定义类型enum 枚举名{ 枚举值1, 枚举值2, 枚举值3}枚举类型名.枚举值枚举是一个值类型,枚举值还可标记一个整型数字予以匹配,默认从0开始计数举个例子//创建枚举表示游戏的所有状态(1表示开始游戏,2表示暂停游戏,0表示结束游戏)//懒得查英文了 用的拼音 0.0 哈哈enum ZhuangTai{ kaiShiYouXi, ZanTingYouXi, JieShuYouXi}static void Ma原创 2020-07-17 21:39:53 · 616 阅读 · 0 评论 -
循环
什么是循环比如说有一件事情,想要重复的去做,比如玩游戏时候快速刷副本,或者做回合制的游戏,一人攻击一下的那种,都是循环循环分三种while 循环while(循环的条件,条件为true,就会接着循环,直到条件为false,循环结束){ //循环体内部(循环的内容)}举两个简单的小例子/**********************************************第一题*****************************************************原创 2020-07-16 20:54:56 · 113 阅读 · 0 评论 -
运算符和分支语句
关系运算符前后表达式之间的大小关系,关系运算符的结果一定是一个bool类型>,<,>=,<=,==,!= 大于,小于,大于等于,小于等于,等于,不等于逻辑运算符前后表达式之间的逻辑关系,关系运算符的结果一定是一个bool类型&,|,&&,||,! 与运算,或运算,短路与,短路或,非与运算 两个都是真,结果才是真或运算 有一个真就是真if语句第一种形式//if 如果的意思if(条件成立为true){ 那就执行这里边的内容,不满足的话,原创 2020-07-15 18:26:34 · 100 阅读 · 0 评论 -
接上一篇博客
运算符赋值运算符 就是一个等于号,但是在这里不叫等于号,叫赋值符号算数运算符 是用于参与数值之间的计算,像:+、-、*、/、%、++、--。 加,减,乘,除,取余,加加,减减 在这里要说一下++,-- 这里要注意下 比如说int a = ++5; int a = 5++; 这两种的结果其实是不一样的 他的运算过程是 ++在前 那先加加,然后在赋值,++在后,先赋值,然后在加加。复合运算符 我感觉能出来这个运算符的根本原因就是程序员偷懒用的, 例如原创 2020-07-15 14:20:39 · 153 阅读 · 0 评论 -
C#的第一个小程序
using System;//引用命名空间namespace FirstProject//使用命名空间{ class Program//类名 { static void Main(string[] args)//主函数 程序执行的入口是这里 { //这句话的意思是控制台写一行 Console.WriteLine("这里可以输入任何内容你比如说灵魂的Hello World"); } }原创 2020-07-14 22:46:06 · 137 阅读 · 0 评论 -
原码 反码 补码
在二进制中表示正负的方法,是看第一位(符号位)0是正数,1是负数注意:(1)正数的原码 反码 补码这三个都是一样的(2)负数的原码 反码 补码这三个都不一样一个小例子3+53的原码,反码,补码0000 00115的原码,反码,补码0000 0101____________________________ 0000 1000 结果等于8 注意这里不要忘记进位结束这基本上是最简单的了,也是每个程序员的基本素质。...原创 2020-07-14 20:16:28 · 581 阅读 · 0 评论 -
C# 基础
编译器直接在百度上打上vs就可以找到Visual Studio 然后下载了,其中带LTS(Long-term Support)是长期维护版本 。进制就是进位制,逢n进1,用白话说就是,比如我们在数数的时候都是从0开始数 0,1,2,3,4,5,6,7,8,9 ······ 当数到9的时候后面的 10 就是进位。当然了要是当初研究阿拉伯数字的那位大哥研究出9以后的其他数字,嗯。。。。滋滋滋 那可就有点裂了 哈哈进制分以下几种(1)二进制 是逢二进一 比如 0,1 当数到2的时候原创 2020-07-14 20:10:55 · 107 阅读 · 0 评论