
C#
kubizhe
这个作者很懒,什么都没留下…
展开
-
VS Dotfuscator代码混淆相关问题
混淆后出现属性和事件引用报错。官方文档:https://www.preemptive.com/dotfuscator/ce/docs/help/obfuscation_renaming.html#pctoc-property-and-event-removal原创 2021-06-29 13:44:06 · 283 阅读 · 0 评论 -
C#RSA加密解密
开门见山网上关于RSA的介绍很多,这里就不再赘述。直接列我们在项目中的应用。一般导出的公钥私钥格式都是xml或者.pem我们使用的是.pem格式。1、读取出.pem的内容;2、用.pem内容实例化RSA对象;3、调用RSA对象的加密接口,参数是要加密的内容。源码如下:Pem类using System;using System.Collections;using System.Collections.Generic;using System.IO;using System.Linq;原创 2020-11-16 17:37:42 · 3958 阅读 · 0 评论 -
循环中动态添加监听的问题
for (int i = 0; i < list.Count - 1; i++){ //第一段 list[i].GetComponent<Button>().onClick.AddListener( () => { OnClick(list[i + 1]); } );...原创 2019-12-26 09:59:46 · 529 阅读 · 0 评论 -
关于使用泛型接口碰到的一个结构相关的问题
有一些具有相同行为能力的数据管理器,为了统一规范这些行为,需要使用接口。public interface IDataManager:{ IData Add(); IList<IData> FindAll();}public interface IData:{}写一个具体的数据管理器,实现这个接口:public class MyDataMana...原创 2019-12-13 14:42:56 · 167 阅读 · 0 评论 -
C#命令行调用UWP snip & sketch应用
需求是调用UWP的snip & sketch进行截图。直接实例化一个Process对象,传入对应的UWP命令行命令即可。using System.Diagnostics;public class Screenshot{ private Process process; private readonly string cmdName = "cmd.exe";...原创 2019-08-28 11:14:35 · 879 阅读 · 0 评论 -
“==”和Equals()对比,踩了好多次坑记一下
值类型的比较:两者可以划等号。引用类型的比较:1、string类型微软重写过“==”,所以对string类型来说,“==”和Equals()一样。2、自定义Class需要自己重写Equals()。否则Equals()无法判断具体对象的内部值是否发生变化。总结:尽量都用Equals()吧。“==”对值类型来说是比较了值是否相同,但对引用类型来说只是比较了地址是否一样,当把对象做缓存后...原创 2019-08-21 10:35:25 · 221 阅读 · 0 评论 -
创建一个Type具体类型的实例
知道类对应的Type,实例化一个Type对应的类:System.Reflection.Assemblyasm = System.Reflection.Assembly.GetExecutingAssembly();objecttem = asm.CreateInstance(type.FullName);直接通过type的FullName实例化一个object即可。...原创 2019-03-29 11:02:56 · 2847 阅读 · 0 评论 -
C# Property.SetValue()利用反射给某个泛型对象的属性赋值的问题
问题描述:在一个泛型方法中,实例化一个泛型对象后,利用反射获取该泛型中的所有属性,再给该对象的这些属性赋值,打断点发现,泛型对象被实例化出来了,没有问题;所要赋值的属性值也没有问题,但调用Property.SetValue()后,泛型对象中的值就是赋不上。问题解决:调用该泛型方法时,传入的类型是个结构体。。这个方法只支持class,不支持struct。(Ps:顺便吐槽一下,最后答案还是在s...原创 2019-03-19 13:25:15 · 9046 阅读 · 1 评论 -
利用反射读取不同类型数据对象的数据
一般情况下,当涉及到数据读取时,我们会给每个表单独定义一个数据类型,当我们读取该类数据时,相当于我们提前已经“知道”是这个类型的数据,然后定义该类型的对象来接收这些数据并读取。这种情况(也是绝大多数碰到的情况)是我们明确知道当前要使用的数据类型。先描述下这次的需求:public interface IObjGroup<T> : IViewManager{ voi...原创 2019-03-22 14:01:29 · 633 阅读 · 0 评论 -
C# 通过反射调用某个方法
先拿到需要目标类型,然后通过反射获取对应方法,再通过System.Reflection.MethodInfo.Invoke(object obj,object[] parameters)调用该方法。如:System.Type curType = curManagerObj.GetType();System.Reflection.MethodInfo methodInfo = curTy...原创 2019-03-13 17:48:01 · 4178 阅读 · 0 评论 -
C#获取某个Attribute标记过的所有类
System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(typeof(CustomAttribute));System.Type[] types = asm.GetExportedTypes();Func<Attribute[], bool> IsMyAttribute = o =>...原创 2019-03-12 10:51:24 · 5599 阅读 · 0 评论 -
U3D 通过泛型读取和写入excel表格
读取和写入excel表格所需的DLL: public static DataSet ReadExcel(string path) { FileStream stream = File.Open(path,FileMode.Open,FileAccess.Read); IExcelDataReader excelReader = Excel...原创 2019-03-20 13:35:59 · 348 阅读 · 0 评论 -
C#判断某个类是否实现了某个泛型接口
需求:当前有一个数据队列,要求该数据队列中的所有对象必须是实现了IObjGroup的类型,如果哪个对象不满足,就输出出来。public interface IObjGroup<T>{}public class PeopleManager : MonoBehaviour, IObjGroup<PeopleGroup>{}public class Validation...原创 2019-03-11 11:10:14 · 3045 阅读 · 0 评论 -
C# Attribute+反射的威力
先说说Attribute这个东西。这次做需求第一次用,查找相关资料看的一脸懵逼,吐槽一手,这么简单的东西为啥要介绍的那么复杂。Attribute叫特性,但是个人感觉把它当成标签理解更舒服点。首先他是一个类,一个继承自System.Attribute的类。他以[Attribute()]的形式标注在类啊,枚举啊,属性啊,方法之类上面,具体适用的对象:[Attribute()]括...原创 2019-03-14 17:39:23 · 1387 阅读 · 0 评论 -
C# 的Hashtable和Dictionary比较
1、Dictionary是顺序存储,Hashtable则不是。比较明显的对比就是使用foreach,Dictionary是按照Add的顺序排列的,Hashtable则是无序的。2、单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.3、在单线程的时候使用Dictionary更好一些,多线程的时候使用HashTable更好。多线程程序中推转载 2017-08-17 17:59:49 · 7091 阅读 · 0 评论 -
C# struct和class的比较
class和struct最本质的区别是class是引用类型,而struct是值类型,它们在内存中的分配情况有所区别。什么是class?class(类)是面向对象编程的基本概念,是一种自定义数据结构类型,通常包含字段、属性、方法、属性、构造函数、索引器、操作符等。在.NET中,所有的类都最终继承自System.Object类,因此是一种引用类型,也就是说,new一个类的实例时,在堆栈(sta...转载 2017-08-17 17:58:42 · 448 阅读 · 0 评论 -
C#多态
多态:相同的操作在不同对象中产生不同结果。虚方法(Virtual)、重写(Override):针对多态而言,即多态通过虚方法实现。注:在父类中定义为虚方法。在子类中重写方法。例:class TrafficTool //定义父类{ public virtual void Run() //定义两个虚方法,因为所有Tr原创 2015-06-08 17:10:49 · 419 阅读 · 0 评论 -
C#实现代理模式
昨天有个朋友问我在Unity3D中如何使用代理。我简单的给他说了一下,可是他还是希望我能写出来。既然不是很麻烦,那么我就在博客里把这个例子写出来。C#语言是支持代理的,并且代理是非常的好用的一种方式。简单的来说就是 你委托朋友帮你做一件事情,当你的朋友做完以后会告诉你。 代码中一般A、B、C、D若干类同时委托E类来做一件事情,当这件事情E类完成时会同时回调A、B、C、D类中的方法,大概就是转载 2015-05-29 11:53:56 · 815 阅读 · 0 评论