- 博客(43)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注

原创 vscode 通过批处理快速自动生成c#项目
vscode 通过批处理快速自动生成c#项目vscode 如何不敲命令生成c#项目。1.在保存所有项目的文件夹下新建文本文件。2.扩展名改为.bat。3.右键 通过vscode 打开。4.输入以下代码,保存。@echo off:1set /P projName=input C# project name:if not exist "%projName%" ( dotnet new console -o %projName% echo ----- project %projN
2021-01-15 22:33:06
586
原创 C# 一种基于 event 和 委托的事件机制
一般的event触发只能在类内部触发,不能在外边触发。如果不加event,又会有覆盖赋值的问题,以下提供了一种既能在类外部触发,也能避免覆盖赋值的办法。} // 避免覆盖赋值。
2024-04-08 19:22:51
344
原创 二叉树的先序 中序 后序遍历 非递归
二叉树的先序 中序 后序遍历 非递归实现定义二叉树类 public class BinaryTreeNode { public char? data; public BinaryTreeNode leftChild, rightChild; }先序遍历public void PreorderTraverse(BinaryTreeNode tree){ Stack<BinaryTreeNode> stack = new Stack<BinaryTr
2021-10-13 11:00:21
818
原创 c#学习笔记 协变逆变
协变和逆变是用来修饰泛型字母的,只用在泛型接口和泛型委托中协变:out ○ 父类装子类 逆变:in○ 子类装父类作用:1. 委托类型 a. in 修饰的泛型字母,只能作参数 b. out 修饰的泛型字母,只能作返回值2. 委托变量 a. 由有out修饰的委托定义的两个不同类型的委托变量,互相赋值时会自动判断返回值之间是否存在继承关系。 b.由有in修饰的委托定义的两个不同类型的委托变量,互相赋值时会自动判断对应参数之间是否存在继承关系。using System;name
2021-04-09 20:49:58
251
原创 Unity学习笔记 NavMeshAgent.velocity设置速度 不生效问题
这里我想通过直接设置agent的速度来模拟击退效果,结果发现当人物处于静止状态时,agent的速度赋值不上的问题。但是当人物处于移动状态时,却能正常赋值。解决方法:禁用Auto Braking即可。 public void KickOff() { if (!AttackTarget) { return; } transform.LookAt(AttackTarget.transform); // 计算击退方向 var kic
2021-04-06 15:53:18
3282
5
原创 UE4 快捷键--引擎篇
F11 运行时全屏鼠标左键 左右:左右旋转场景视角,上下:前进后退。鼠标右键 左右:同上,上下:抬头低头滚轮 拉近 拉远按住滚轮拖动(视角水平时) 水平或竖直移动视角按住滚轮拖动(视角垂直时) 左右拖动水平移动视角,上下=>缩放按住鼠标左键或右键+wasd qe zc 通过wasd来移动场景视角。类似OW观战。右键更灵活。qe上下垂直地移动zc广角地拉近拉远CTRL+0~9 添加书签(存储摄像机的机位)G 切换到游戏视图。即隐藏一些IconCTRL+ALT+左键拖动 方形选择.
2021-03-27 09:59:19
1981
2
原创 c#学习笔记 特殊语法
using System;namespace 特殊语法{ class Person { public string Name { get; set; } public bool Sex { get; set; } public void Speak () { Console.WriteLine ("name:" + Name + " sex:" + (Sex? "男": "女"));
2021-03-05 17:36:34
230
1
原创 PS 中英文互转
PS 中英文互转1.右键PS图标->属性2.打开文件所在位置->进入以下路径…\Adobe Photoshop CC 2019\Locales\zh_CN\Support Files3.选择 tw10428_Photoshop_zh_CN.dat 文件。只要将其删除,或者修改名字为其他字符即可切换到英文。若想换回中文,只需将文件名改回即可。4.英文版...
2021-02-26 19:53:13
1029
原创 Lua学习笔记 元表 操作符重载 index newindex
• 元表的概念(类似父类和子类) ○ 任何表变量都可以作为另一张表变量的元表 ○ 任何表变量都可以有自己的元表 ○ 子表执行某些特定操作时会执行元表中的内容meta = { --子表调用时会默认把子表当参数传入 __tostring = function(t) return t.name; end, -- 当子表被当作函数使用时会调用这个函数,且默认将子表作为第一个参数传入 __call = function (self,param1)
2021-02-09 12:22:30
414
原创 Lua学习笔记 协程
-- 协程的创建--------------------function func( ) print(123);end-- 1. coroutine.create( function )co1 = coroutine.create( func );print(type(co1));--thread-- 2. coroutine.wrap( function )co2 = coroutine.wrap( func );print(type(co2));--function
2021-02-08 12:44:18
156
原创 Lua学习笔记 lua中的三目运算符
-- 同时给多个变量赋值.多丢少空。a,b,c = 1,2,"str";-- lua中,只有nil和false表示逻辑假。其他都表示真,包括0.-- 非Boolean型的值 进行运算时,返回值符合短路原则。如:print(1 and 2);--2 1为真,还需要判断2是否为假,故返回2。print(1 or 2)--1 1已经为真,不需要判断2.故返回1.-- 模拟三目运算符 (条件)and 为真的值 or 为假的值x,y = 6,5;local res = (x>y) and
2021-02-08 12:42:59
366
原创 Lua学习笔记 多脚本执行 全局局部变量 _G表
-- 全局变量(直接变量名声明的,包括循环体和函数体中的都是)a = "string";-- 局部(本地)变量,关键字 local。只在声明的代码块或者脚本文件中有效-- 多脚本执行,关键字 require(”脚本名“)。可以使用其他调用过的脚本的全局变量。--------------------- 脚本文件可以在最后使用return 返回一个或多个值。其他代码使用require调用时可以接收这些值。test2 = require("Lesson_1");print(test2);-- 调
2021-02-08 12:41:49
494
原创 Lua学习笔记 复杂数据类型 table
-- 数组a = {1,2,"string",true,nil};-- 索引从1开始,a[0] 为 nil-- #a可以获取a的长度。nil不计算在内。print(#a);--4-- 遇到nil则代表结束。如:b = {1,2,nil,"string",true,nil}print(#b);--2-- 二维数组同c#-- 自定义索引(有坑)-----------------------print("-------------------");aa = {[0] = 1,2,3,[6]
2021-02-08 12:39:24
274
原创 Lua学习笔记 函数 function
-- 声明(参数不需要指定类型)---------------------------function func1( ... ) -- bodyend-- 调用func1();-- 参数--------------------------------------------func2 = function ( a ) print(a);endfunc2();--nil 不传参数默认为空func2(1,2,3);--1 多的参数会丢弃-- 返回值 -----------
2021-02-08 12:38:19
204
原创 Lua学习笔记 基本语句 if else for while
//if elsea = 5if a > 3 then print("greater than 3");elseif a >0 then print("greater than 0")else print("not greater than 0");end-- lua中 没有switch //whilenum = 0;while num < 5 do print(num); num = num + 1;end;-- re
2021-02-08 12:37:31
184
原创 Lua学习笔记 运算符
-- 没有自增 自减 ++ ---- 没有复合运算符 += -= *= /= %=-- 字符串与number类型 相加 + 时,如果字符串是数字,则会是进行数字相加,而不是字符串拼接。字符串拼接用的是 .. 运算符print("123.5" + 1)--124.5-- 多了幂运算print("2的3次方:".. 2 ^ 3);-- 条件运算符。不等于是 ~=,其他相同-- 逻辑运算符。支持短路-- && 是 and-- || 是 or-- ! 是 not...
2021-02-08 12:36:13
170
原创 Lua学习笔记 字符串操作 string
str = "abcd";str1 = "我";--#str 可以获取字符串长度print(#str);--4-- 一个汉字占3个长度(在utf-8中是3个,gbk中是两个。和编码有关)print(#str1);--3-- 多行字符串(也可以用转义字符)str = [[ 多 行 字符串]]print(str);--[[ 多 行 字符串]]-- 字符串拼接str = "123".."456";print(str);--12345
2021-02-08 12:34:54
1083
1
原创 c#学习笔记 闭包
内层函数可以引用包含它的外层函数的变量,即使该外层函数已经执行完毕(即该外层函数的栈帧不会释放)。注意:引用的变量的值是第一外层代码块范围内的最终值(执行完毕时的值)。如下: void func(){ for (int i = 0; i < 10; i++){ action += () => { Console.WriteLine(i); }; }}action执行结果为 十个 10; void func(){ for (int i = 0; i < 10; i++
2021-01-29 13:46:31
121
原创 c#学习笔记 匿名函数 Lambda Express
匿名函数和委托事件配合使用。一般作为函数参数 或者 返回值• 语法:delegate(参数列表){//函数逻辑};//结尾有分号Lambda Express• 匿名函数的简写形式• 语法:(参数列表)=> {//函数逻辑};//结尾有分号//因为是配合委托和事件使用,参数列表中的内容必须和委托类型匹配(参数类型可以不写)。//如果某个函数只有一条语句,也可用这种写法。public void Function() => Console.WriteLine();..
2021-01-29 13:45:25
211
原创 c#学习笔记 委托和事件
委托• 语法:访问修饰符 delegate 返回类型 委托名(参数列表)○ public delegate void MyDelegate(int a);○ MyDelegate myDelegate;• 添加 / 取消订阅 += / -=○ myDelegate += Func;//Func返回空,需要一个int参数○ 直接 myDelegate = Func,会覆盖掉前面已经订阅的函数(相当于重新赋值而不是在原来基础上添加)。• 调用:myDelegate.Invoke(intValue)
2021-01-29 11:59:38
159
原创 c#学习笔记 泛型 泛型约束
• 泛型是什么 ○ 泛型实现了类型参数化,达到代码重用的目的。 ○ 通过类型参数化来实现同一份代码上操作多种类型 ○ 泛型 T 相当于类型占位符 ○ 定义类或者方法时使用替代符代表变量类型 ○ 当真正使用类或者方法时才具体指定类型• 泛型的作用 ○ 不同类型对象的相同逻辑处理就可以选择泛型• 泛型的分类 ○ 泛型类和泛型接口 ○ 基本语法: § class 类名<泛型占位字母> § Interface 接口名<泛型占位字母> ○ 继承类或实现接口
2021-01-28 12:39:29
184
原创 c#学习笔记 数据结构 列表 栈 队列 哈希表
需要using System.CollectionArrayList :以object存储元素,即可以存储任意类型的东西。不建议使用 ArrayList 类进行新的开发。 相反,我们建议使用泛型 List 类。 ArrayList类旨在保存对象的异类集合。 但是,它并不总是提供最佳性能。 相反,我们建议执行以下操作:• 对于异类对象集合,请使用 List c # 中的 或 List(Of Object) (Visual Basic) 类型。• 对于同类对象的同类集合,请使用 List 类。基本操作
2021-01-28 11:52:00
178
原创 c# 学习笔记 万物之父 Object
• 静态方法 ○ Equals § 签名: public static bool Equals(Object objA, Object objB); § 功能: 判断两个对象是否相等。不管两个参数是值类型还是引用类型,最后都会按照左侧对象的Equals方法来进行比较。 ○ ReferenceEquals § 签名: public static bool ReferenceEquals(Ob
2021-01-23 17:44:47
210
1
原创 Unity学习笔记 鼠标点击拖拽等
1.使用unity内置方法 OnMouseXXX(),需要目标有碰撞体。适合2D贴图和3D场景使用。ui的拖动使用下面两种方法。 /// <summary> /// Called when the mouse enters the GUIElement or Collider. /// </summary> void OnMouseEnter () /// <summary> /// Called wh
2021-01-21 12:35:54
592
原创 c# 学习笔记 接口 framework c#版本
接口是行为的规范接口也是一种自定义类型关键字 interface接口声明的规范:1. 不包含成员变量2. 只包含方法、属性、索引器、事件3. 成员不能被实现,包括访问器get和set。C# 8.0 中开启默认接口实现4. 成员可以不用写访问修饰符,默认是public ,但不能是私有的5. 接口不能继承类,但可以继承另一个接口接口的使用规范:1. 类可以实现多个接口2. 类要使用接口就必须实现接口中的所有成员,且必须是public的接口命名规范:帕斯卡命名法,前面加个 I实例:n
2021-01-20 19:31:18
362
1
原创 c# rider [CS8701] 目标运行时不支持默认接口实现。
修改TargetFramework至net5.0即可点击红色框中的solution,选择File System2.打开xxx.csproj文件3.修改TargetFramework至net5.0
2021-01-20 19:17:01
2006
1
原创 c#学习笔记 里氏替换原则 is和as
里氏替换原则:任何父类出现的地方都可以用子类替代。换言之,父类对象可以作为容器装载子类对象。类似Java中的上转型对象。is :判断一个对象是否为指定类的实例返回 bool 是返回真,不是返回假as :将一个对象转换为指定类的对象返回 指定类的对象 成功返回指定类的对象 失败返回nullclass Creature { protected int HP; protected int ATK; } class Hero : Creatur
2021-01-20 14:40:22
329
2
原创 c#学习笔记 操作符重载
关键字operator特点1. 一定是一个public的静态方法2. 逻辑处理自定义作用让自定义的类或结构体能够使用运算符基本语法:public static 返回类型 operator 运算符(参数列表){//do something}实例: class Point { public int x; public int y; public Point (int x, int y) { this.x = x; this.y =
2021-01-18 18:11:07
159
原创 c#学习笔记 拓展方法
概念为现有非静态 变量类型 添加新方法作用提升程序拓展性不需要类中重新写方法不需要继承来添加方法为别人封装的类型写额外的方法特点一定是写在静态类中一定是个静态函数第一个参数为拓展目标第一个参数用this修饰基本语法:在静态类中声明的静态方法访问修饰符 static 返回值 函数名(this 拓展类名 参数名,参数类型 参数名,。。。){//do something}namespace 拓展方法{ static class Tools {
2021-01-18 17:08:20
163
1
原创 c#学习笔记 结构体
public struct Student { public int age; public string sex; public string name; public int id; public Student (int age, string sex, string name, int id) { this.age = age; this.se..
2021-01-17 19:31:44
217
原创 c#学习笔记 ref和out
static void Swap (ref int a, ref int b) { int temp = a; a = b; b = temp; } static void Main (string[] args) { int a = 4; int b = 5; Console.WriteLine.
2021-01-17 19:09:27
146
c# 实现接口的类 怎么转为 对应接口
2021-04-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人