
C#
文章平均质量分 51
画个小圆儿
胸怀文墨虚若谷,腹有诗书气自华
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UnityWebRequest.Post报错
UnityWebRequest.Post(string uri, string postData) 这个方法在内部会先进行 URL 编码,进行请求时会报错,解决方法原创 2023-04-19 14:08:07 · 938 阅读 · 1 评论 -
C#学习 修饰符partial
再看GameFramework框架的时候,看到了一个新的修饰符partial,第一次见到感觉真的牛皮的不得了。所以学习记录一下。转载 2023-02-27 17:58:58 · 371 阅读 · 0 评论 -
DirectoryInfo参考
DirectoryInfo类在.net开发中主要用于创建、移动和枚举目录和子目录的实例方法,此类不能被继承原创 2023-02-14 19:44:39 · 365 阅读 · 0 评论 -
Unity中计时器管理类
该文中的计时器是基于Unity的生命周期中Update的实现,通过Time.deltaTime的累加作为计数器,将需要定时的对象类根据延长的时间排序,不用每一次Update时都对列表进行操作。原创 2023-01-19 16:51:39 · 739 阅读 · 0 评论 -
Unity中特效透明度动态设置
在Unity开发中,特效的透明度无法直接使用代码或者动画直接控制很不方便,便制作了一个一个脚本,专用来控制一个节点下的所有子节点的透明度。 在其父节点添加即可原创 2022-12-06 20:46:13 · 2587 阅读 · 0 评论 -
【C#】Tuple(元组)
Tuple类是在 .NET Framework4.0 中引入的。元组是一种包含不同数据类型的元素序列的数据结构。它可以用于需要数据结构来保存具有属性的对象,但又不想为其创建单独类型的情况。转载 2022-11-11 12:01:47 · 820 阅读 · 0 评论 -
Convert转换学习
Convert.ToStringConvert.ToInt64Char.ConvertToUtf32原创 2022-09-16 21:18:41 · 1016 阅读 · 0 评论 -
桶排序详解
桶排序学习转载 2022-09-03 15:33:34 · 336 阅读 · 0 评论 -
基数排序(学习)
基数排序学习原创 2022-09-02 17:19:41 · 376 阅读 · 0 评论 -
Unity编辑器 - TreeView控件笔记
用起来有一些规则,写个简单的案例以备查阅:using System.Collections.Generic;using UnityEditor.IMGUI.Controls;using UnityEngine;public class MyTreeView : TreeView { //搜索控件 SearchField _searchField = new SearchField(); List<object> allData = new List<转载 2022-03-17 19:32:00 · 1686 阅读 · 0 评论 -
Unity打开文件OpenFileDialog
一、打开文件对话框(OpenFileDialog)1、 OpenFileDialog控件的基本属性InitialDirectory:对话框的初始目录 Filter:获取或设置当前文件名筛选器字符串,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*" FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 RestoreDirectory 控制对话框在关闭之前是否恢复当前目录 FileName:第一个在对话框中显示的文件或最后一个选取的...原创 2021-11-30 11:37:45 · 2146 阅读 · 0 评论 -
用好Lua+Unity,让性能飞起来——Lua与C#交互篇
转载自:用好lua+unity,让性能飞起来——lua与c#交互篇前言在看了uwa之前发布的《Unity项目常见Lua解决方案性能比较》,决定动手写一篇关于lua+unity方案的性能优化文。整合lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法。然而作为一个重度ulua用户,我们踩过了很多的坑才将ulua上升到一个可以在项目中大规模使用的状态。事实上即使到现在lua+unity的方案仍不能轻易的说可以肆意使用,要用好,你需要知道很多。因此,这篇文章是从一堆..转载 2021-07-23 11:32:49 · 1031 阅读 · 0 评论 -
C#中的Explicit和Implicit
implicitimplicit关键字用于声明隐式的用户自定义的类型转换运算符。 如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。转载 2021-06-01 20:53:44 · 1760 阅读 · 1 评论 -
已签名的apk文件或签名文件获取MD5值
参考贴:http://blog.youkuaiyun.com/themelove/article/details/52767528一、已签名apk文件获取签名文件的MD5,签名信息方法一:1.先把apk解压2.在META_INF目录下找到xxx.RSA文件3.确保安装了jdk并且正确配置了环境变量4.cmd中执行keytool -printcert -file xxxx.RSA目录运行效果如下:方法二:1.确保安装了jdk并且正确配置了环境变量。2.cmd中执行key..转载 2021-04-14 15:56:34 · 1029 阅读 · 0 评论 -
C# 特性(Attribute)
什么是特性?特性(Attribute)是一种允许我们向程序的程序集添加元数据的语言结构。它是用于保存程序结构信息的某种特殊类型的类。将应用了特性的程序结构叫做目标。设计用来获取和使用元数据的程序(对象浏览器)叫做特性的消费者。.NET预订了很多特性,我们也可以声明自定义的特性预定的特性:Obsolete特性(方法前):可以使用Obsolete特性将程序结构标注为过期的,并且在代码编译时,显示警告信息.格式:[Obsolete("警告信息",true)]//最后一个...转载 2021-03-27 17:17:23 · 329 阅读 · 0 评论 -
C#中 ??、 ?、 ?: 、?.、?[ ]
1.可空类型修饰符(?) 引证类型能够运用空引证表明一个不存在的值,而值类型通常不能表明为空。 例如:stringstr=null;是正确的,inti=null;编译器就会报错。 为了使值类型也可为空,就能够运用可空类型,即用可空类型修饰符"?"来表明,表现方式为"T?" 例如:int?表明可空的整形,DateTime?表明可为空的时刻。 T?其实是System.Nullable(泛型结构)的缩写方式, 也就意味着当你用到T?时编译器编译时会把T?编译成System.Nullable转载 2021-02-26 13:45:56 · 1928 阅读 · 0 评论 -
C#属性使用 =>
在c#中经常使用Lambda表达式,在Lambda表达式中=>是很常见的,但是最近在看代码时发现一个另类的写法,就是在属性中使用=>,写法如下:PropertyType PropertyName => expression;举例:public class Location{ private string locationName; public string Name => locationName;}上面的写法,跟下面的写法,作用是一样的。转载 2021-01-14 11:39:12 · 2807 阅读 · 0 评论 -
C#与Lua交互过程及原理
C#与Lua交互过程:C# Call Lua :由C#文件先调用Lua解析器底层dll库(由C语言编写),再由dll文件执行相应的Lua文件;Lua Call C# :1)、Wrap方式:首先生成C#源文件所对应的Wrap文件,由Lua文件调用Wrap文件,再由Wrap文件调用C#文件;(2)、反射方式:当索引系统API、dll库或者第三方库时,如果无法将代码的具体实现进行代码生成,可采用此方式实现交互。缺点:执行效率低。C#与Lua交互原理:C#与Lua进行交互主要通过虚拟栈...转载 2020-08-19 23:52:51 · 6787 阅读 · 0 评论 -
C#中的Lock机制
Lock在MSDN的定义:lock关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。lock应用:经常用于防止多线程操作导致公用变量值出现不确定的异常,用于确保操作的安全性。如上面代码,当线程1和线程2都来调用这个方法的时候,当线程1先调用,线程1就会申请互斥锁,当线程2再来执行时,发现lock这里已经申请了互斥锁,所以线程2需要等待线程1执行完成后,释放互斥锁,线程2才能申请新的互斥锁并执行lock里面的代码。注意:loc原创 2020-10-04 10:54:11 · 1815 阅读 · 0 评论 -
LeetCode学习第一题—— 两数之和(C#)
题目描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解决方法:看到这个问题,我们第一反应肯定就是循环遍历两次数组,然后将数据进行相加,当和为target时,将两个值...原创 2020-07-12 11:11:40 · 642 阅读 · 0 评论 -
检查图片是否完整(图片下载, 只有半张图问题)
下载图片 有时网络卡, 图片只有半张, 用这个 IsCompletedImage可以检查下载的图片是否完整, 可以检查jpg, bmp, gif, png.主要根据图片开头和结尾的特定字节来判断的.static void Main(string[] args) { string strFileName = @"c:\test.jpg"; if (IsCompletedImage(strFileName)) { Consol.转载 2020-05-26 17:31:48 · 1910 阅读 · 0 评论 -
[C#]Where关键词的用法
where(泛型类型约束)where关键词一个最重要的用法就是在泛型的声明、定义中做出约束。约束又分为接口约束、基类约束、构造函数约束、函数方法的约束,我们慢慢介绍。接口约束顾名思义,泛型参数必须实现相应的接口才可以,看一个例子:public interface IAccount { string Name { get; ...转载 2020-05-05 01:26:19 · 2702 阅读 · 0 评论 -
关于Thread.IsBackground属性的理解
C#中,Thread类有一个IsBackground 的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程。个人感觉这样的解释等于没有解释..Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一的区别就是:后台线程不会防止应用程序的进程被终止掉。呵呵,这句话读出来好像并不那么好懂.其实,说白了就是当前台线程都结束了的时候,...转载 2020-05-05 00:48:56 · 806 阅读 · 0 评论 -
unity自带的JsonUtility.ToJson()无法序列化对象的自定义类型成员?
在使用unity编写客户端网络模块时发现unity自带的Json序列化函数JsonUtility.ToJson()有一些坑,如果序列化对象的属性成员中有自定义类型对象,那么序列化后该成员会为空,无法编码。代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public clas...转载 2020-04-16 15:59:37 · 3151 阅读 · 2 评论 -
Unity 设置外部程序无边框和显示隐藏
这个是调用win10自带屏幕键盘的代码首先要找的win10自带屏幕键盘的exe文件,保存到unity streamingAssets文件夹下启动unity 要用管理员模式启动,不然打不开自带的屏幕键盘,对于其他的程序可能不需要用管理员启动unity上代码:using System;using System.Collections;using System.Collection...转载 2020-03-12 12:43:12 · 1979 阅读 · 0 评论 -
Unity检测网络连接状态
Unity中有自带的判断是否连接网络的方法如下: if (Application.internetReachability == NetworkReachability.NotReachable) { text1.text = "Unity自带判断,没有联网"; Debug.Log("Unity自带判断,没有联网"); ...原创 2019-12-04 14:29:41 · 4624 阅读 · 1 评论 -
C#对文件及文件夹的操作包括删除、移动与删除
在.Net中,对文件和文件夹的操作可以使用File类和Directory类,也可以使用FileInfo类和DirectoryInfo类。File类和Directory类都是静态类。使用它们的好处是不需要初始化对象。如果你对某一个文件或文件夹只进行一次操作,那你最好使用该静态类的静态方法,比如File.Move,File.Delete等等。(注:在File.Move()和File.Delete(...转载 2019-11-29 13:58:59 · 898 阅读 · 0 评论 -
MSVCR140.dll文件丢失,解决办法
当程序运行时因计算机缺少MSVCP140.dll无法继续执行,重新安装程序根本无法解决问题,这时候你可以重新下载Microsoft Visual C++ 并且运行就可以了。Microsoft Visual C++安装包地址:链接:https://pan.baidu.com/s/1vA1-4Mds0QH2Pc-MOIdU7g 密码:3hvd...原创 2019-11-28 09:37:41 · 3537 阅读 · 0 评论 -
C#中将string转换为float、int
using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test1 : MonoBehaviour { string str1 = "12.222"; string str2 = "123"; string str...原创 2019-11-25 17:32:49 · 1740 阅读 · 0 评论 -
c# Dictionary.TryGetValue()的用法
当确定字典中存在该键值对时,可以使用:myObject result = null;if (theDictionary.ContainsKey(id)){ result = theDictionary[id]; //What ever you gonna do next...}当在字典中不能确定是否存在该键时需要使用TryGetValue,以减少一次不必要的查找,...原创 2018-10-29 17:26:02 · 37175 阅读 · 2 评论 -
约瑟夫环问题
代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Test1{ class Program { static void Main(string[] ...原创 2019-01-14 16:10:35 · 256 阅读 · 0 评论 -
(C#)顺时针/逆时针打印矩阵
题目描述:思路 : 建立一个list,遍历数组中行(列)添加到list中,然后改变数组的遍历方向顺时针(逆时针)旋转90度,知道遍历完成。顺时针代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading...原创 2019-02-22 11:36:54 · 905 阅读 · 2 评论 -
经典排序算法之堆排序
堆排序是一种选择排序,是不稳定的排序方法。特点:在排序过程中,将排序数组看成是一棵完全二叉树存储结构,利用完全二叉树中父节点和孩子节点之间的内在关系,在当前无序区中选择关键字最大(最小)的记录。基本思想:堆分大根堆和小根堆,大根堆是父节点比所有子节点都大,小根堆是父节点比所有子节点都小。下面以大根堆为例。1、先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区。2、...原创 2019-02-11 18:10:24 · 292 阅读 · 0 评论 -
(C#)两个栈实现队列和两个队列实现栈
首先说一下队列和栈的相同点和不同点:相同点:1、都是线性结构。2、插入操作都是限定在表尾进行3、都可以通过顺序结构和链式结构实现4、插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样5、多链栈和多队列的管理模式也可以相同不同点:1、删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。2、栈是先进后出,队列是先进先出3、应用场景...原创 2019-02-22 18:31:19 · 772 阅读 · 0 评论 -
(C#)String字符串的用法
创建String对象的方式1、通过给String变量指定一个字符串2、通过使用String类构造函数3、通过使用字符串串联运算符(+)4、通过检索属性或者调用一个返回字符串的方法5、通过格式化方法来转换一个值或对象为它的字符串表示形式 String类的属性Chars : 在当前String对象中获得指定位置的char对象。Length : 在当前的Strin...原创 2019-02-20 15:21:28 · 8499 阅读 · 0 评论 -
经典排序算法之二分查找算法
二分查找又称折半查找,它是一种效率较高的查找方法。特点:1、二分查找仅适合线性表的顺序存储结构,不适合链式存储结构。2、必须按关键字大小有序排列原理:①、将数组分为两半,并且算出中间的下标mid,前一半从下标0到mid - 1,后一半从mid + 1到数组最后一个元素。②、将要查找的数与数组下标为mid的元素进行比较,如果要查找的数大,则把查找范围缩小到原数组的后一半(反之...原创 2019-02-21 10:59:37 · 874 阅读 · 0 评论 -
Unity中Socket编程(TCP协议)
服务器端:using System.Collections.Generic;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using UnityEngine;public class TCPServer : MonoBehaviour { publi...转载 2019-03-27 17:59:28 · 1414 阅读 · 0 评论 -
C#中IP地址与数字之间的互换
平常我们的ip地址存入计算机并不是点分形式,而是uint32类型的。下面使用C#实现IP地址与数字之间的转换。using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Net;using System.Text;using System...转载 2019-06-24 17:25:15 · 758 阅读 · 0 评论 -
Unity窗口显示在最前面
基本思路1、得到Unity程序窗口的句柄2、判断Unity程序窗口是否在最前面,如果不是,则将其显示在最前面代码实现using System;using System.Collections;using System.Collections.Generic;using System.Runtime.InteropServices;using UnityEngine;us...转载 2019-09-27 09:17:37 · 3028 阅读 · 1 评论