
C#
文章平均质量分 55
scott.cgi
要么编程,要么被编程,编程是一种超能力
展开
-
C# 利用元组(ValueTuple)在「堆栈」上创建数组的一个方法
通常,new[]出的数组在堆上,struct可以在堆栈上,但不能使用index索引访问,而想要在堆栈上使用index索引,可以给struct添加get索引方法,:public object this [int index] { get { throw null; }}亦或是,使用元组来进行转换,如:// ValueTuple实现了ITuple接口var values = (ITuple) (1, 2, 3);for (var i = 0; i < values.Lengt原创 2021-02-03 14:21:59 · 662 阅读 · 0 评论 -
C# 使用md5查找文件夹内重复的文件
思路:通过文件的md5值和大小,判断文件是否相同。using System.Collections.Generic;using System.Security.Cryptography;using System.IO;public static class FileTool{ // 文件检索目录 private const string DirPath = ""; // 重复文件的存放目录 private const string SameFilesP原创 2020-12-03 21:54:24 · 1310 阅读 · 0 评论 -
C# byte[]数组和string的互相转化 (四种方法)
第一种string str = System.Text.Encoding.UTF8.GetString(bytes); byte[] decBytes = System.Text.Encoding.UTF8.GetBytes(str); 同样的,System.Text.Encoding.Default,System.Text.Encoding.ASCII也是可以的。还可以原创 2017-05-11 17:38:50 · 136279 阅读 · 2 评论 -
C# 二进制字节流读写封装
完成以下功能:只针对内存字节流的读写,主要应用于数据的解析和写入。提供不同数据类型的读写接口,包括byte,short,int,float,string等。处理了大小端数据转换的问题,所以可用于网络数据的解析和发送。using System.IO; using System.Net;using System;namespace Framework{ public原创 2017-05-16 19:41:31 · 5160 阅读 · 2 评论 -
C# 管理类的访问权限控制
c# 提供了internal关键来,来控制程序集的访问权限。但如果不提供dll的分发形式,internal的价值就无法体现出来。在管理类和被管理对象之间,常常需要互相访问一些属性,这就破坏了封装性。因为这些属性,并不想被其它方法修改,但又不得不标记为公开。比如:public class Tween{ public float duration;}public static class T原创 2017-09-05 11:35:50 · 2585 阅读 · 0 评论 -
C# unicode string 转换 codepoint
c# 的string和StringBuilder都支持使用codepoint直接构造字符串。unicode的字符串形式一般都是’\u1234’这种转义模式。 其中‘1234’就是unicode字符的16进制形式。通过计算,可以把这种形式的字符串,直接转化为codepoint. /// <summary> /// Get the unicode code point原创 2017-09-12 11:37:47 · 1465 阅读 · 0 评论 -
C# 枚举Enum和int转换(不使用强转)
枚举类型可以和int类型,通过强转进行转换。Enum是所有枚举类型的父类。现在又一种这样的需求,在父类设计中定义了一个int类型的变量,用来作为一种标示。子类可以扩展这个数据。很直觉得,在子类定义中,我们会定义很多枚举类型来代表标示不同的意义。可是,在对父类的这个int类型操作的时候,这些子类型的枚举就需要强转。 很自然的,我们会很烦。于是,我们会想,如果父类的int也用枚举,原创 2016-04-27 16:48:45 · 24146 阅读 · 0 评论 -
「MojoUnityJson」C#实现超级简单和高效的JSON解析器
MojoUnityJson是使用C#实现的JSON解析器 ,算法思路来自于游戏引擎Mojoc的C语言实现Json.h。借助C#的类库,可以比C的实现更加的简洁和全面,尤其是处理Unicode转义字符(\u开头)的解析,C#的StringBuilder本身就支持了Unicode码点(code point)。MojoUnityJson使用递归下降的解析模式,核心解析代码只有450行(去掉空行可能只原创 2018-01-22 22:46:32 · 1374 阅读 · 1 评论