C#基础
文章平均质量分 77
81192_csdn
喜欢创造新世界
展开
-
单例模式再议
文章目录1.前言2.单例的几种方式2.1 非线程安全模式2.2 简单线程安全模式2.3 双重验证线程安全模式2.4 非锁模式的线程安全2.5 其他模式3.Unity单例模式3.1 特殊性3.2 一个单例4.结论1.前言曾多次对unity或者c#在使用单例时的一些问题进行过讨论,即有充满戾气的讨论,也有理性的总结与封装(封装成一个抽象类,使用时直接继承),但多次使用时还是有一些不同的想法,故此文章诞生。此文将从纯C# 层展开。2.单例的几种方式此部分为纯C#层面2.1 非线程安全模式此种线程不安全原创 2021-05-16 14:28:19 · 81 阅读 · 0 评论 -
单例模式
文章目录1.最简单的单利2.构造函数法3.DontDestroyOnLoad情况下的单例模式4.静态属性或者静态方法法5.单例模式乱象5.1 单例变”多例“5.2 使用锁(lock)介绍几种unity单例1.最简单的单利这是最简单有效,最实用最没问题的单利模式。如果说存在什么问题,那就是在别的脚本awake中引用,若果其他脚本中的awake比上述awke先执行,则会报空引用。此问题通过设置脚...原创 2019-10-17 19:53:13 · 226 阅读 · 0 评论 -
UnityC#调用so文件
文章目录1.so源文件1.1 NaviteCode.h1.2 NaviteCode.cpp2.调用方法Unity中C#调用so文件中返回字符串。1.so源文件1.1 NaviteCode.h #ifndef __NativeCode_H__ #define __NativeCode_H__ #if 0 #define EXPORT_DLL __declspe...原创 2019-11-23 17:09:35 · 1680 阅读 · 0 评论 -
List去重复
通过wifiDataListTemp ,将wifiDataList中重名的元素剔除。 List<WifiItemData> wifiDataListTemp = new List<WifiItemData>(); for (int i = 0; i < wifiDataList.Count; i++) ...原创 2019-11-23 10:20:11 · 93 阅读 · 0 评论 -
Stream流
流是C#中比较重要的一个概念,很多关键技术都需要用到流。何为流呢?可以理解流为江河中水的流动,不过C#中则为信息流,我们可以把信息写入流,也可以读出。比如以文件读写操作为例,首先以某种方式(如只读)打开文件,相当于建立了通往此文件的流,然后就可以从此流中读取信息。C# stream为抽象类,只能用来定义。由它派生出三个派生类:MemoryStream(内存流),BufferedStream(缓存流...转载 2019-10-15 09:09:09 · 101 阅读 · 0 评论 -
文件读取
在stream中已经介绍过,文件读取应用filestream,其是以字节为单位读取文件的。在操作中,当应用filestream创建文件流,读取时应先定义一个字节数组,在转化成char类型,最后转化成string类型。我们其实可以通过streamreader/writer类来直接读取字符串。在此简单介绍一下,流的读取方式除了创建流类中自定义的read/write方法(通过byte类型进行),也可以通...原创 2019-10-14 20:07:59 · 115 阅读 · 0 评论 -
简单Linq
文章目录前言1.m类2.定义一个list3.查询3.1 基本查询方法3.2 where方法3.3 ToList使用前言通过定义一个类m,以及一个m类的list来说明linq用法。1.m类 public class m { public int name { get;set;} public int age { get; set; } ...原创 2019-10-14 19:42:34 · 75 阅读 · 0 评论 -
接口 IEnumerable
1.接口C#提供了可供类继承的接口,在此解释一下经常遇到的IEnumerable,在此首相解释一下接口,如下例所示:/// <summary> /// 简述Interface的用法 /// </summary> //定义接口,接口都是公用的,其内部的方法属性都是公用的,无需作用域修饰符 public interface IAttack...原创 2019-10-14 19:35:50 · 128 阅读 · 0 评论 -
反射
通过反射获取类内部信息通过C#中的type类获取类中的字段、属性、方法等相关信息。/// <summary> /// 通过type类获取类中的公有字段,属性和方法 /// </summary> /// class newClass { public string Id01; public stri...原创 2019-10-14 19:33:15 · 66 阅读 · 0 评论 -
DataTable与DataSet
文章目录前言1.定义datatable2.定义列(columns)3.定义行(rows)4.datatable数据获取5.DataSet前言简单讲解一下dataset和datatable,以excel对比,dataset相当于一个excel文件,datatable相当于excel的一张表格。datatable可以单独应用,dataset里面可以含有多张datatable。1.定义datata...原创 2019-10-14 19:31:31 · 548 阅读 · 0 评论 -
Sqlite编程
文章目录前言1.建立连接2.创建执行命令,创建两个表格3.写入数据3.1 采用string.format协助写入数据3.2 采用sqliteparamater协助写入数据4.数据读取4.1 采用sqlitedatareader读取数据4.2 采用sqliteadapter读取到datatable中4.3 采用sqliteadapter读取到dataset中5.完整代码前言sqlite是一种轻量...原创 2019-10-14 19:24:27 · 194 阅读 · 0 评论 -
Excel编程
文章目录前言1.System.Data.OleDb1.0 定义连接字符串1.1 连接excel并读取数据2.Aspose.Cells2.0 建立workbook,并连接excel2.1 获取数据2.2 新建excel前言excel应用非常普遍,C#操作excel非常方便。本文介绍两种操作excel的方法。第一种是系统自带的库System.Data.OleDb;用此库操作exce需要对两种格式进...原创 2019-10-14 19:19:05 · 1509 阅读 · 0 评论 -
多线程
文章目录前言1.基本方法1.0 子线程运行的方法1.1 开启线程1.2 主程序运行内容2.线程池3.带返回值方法3.0 建立委托3.1 定义相关方法3.2 委托指向方法并开启线程4.完整代码4.1 基本方法代码4.2 线程池代码4.3 返回值线程前言多线程简单来说就是让计算机进行“一心多用”,不过此处一心多用并不是真正的一心多用,只是在不同的时间片段(极短的时间片段内)分别执行不同的操作,但在...原创 2019-10-14 14:27:58 · 97 阅读 · 0 评论 -
sql server基本编程
文章目录前言1.0 建立数据库1.1 建立的数据库中Table1.2 向表中添加数据1.3 删除表格1.4 读取数据库中数据其他前言C#操作sqlserver跟操作其他数据没有太大差别,但是又一些细节要注意一下。在安装sqlserver时不要选择默认实例,如果是则需要更改设置,还有远程连接要去连接服务中设置一下,如端口1433等,这些百度一下就可以了。下面开始介绍一些最基本的数据库操作。1...原创 2019-10-14 13:36:25 · 777 阅读 · 0 评论 -
解压zip文件
此代码为转载的代码,但找不到出处了,侵删/// <summary> /// 执行压缩命令结果 /// </summary> public enum CompressResults { Success, SourceObjectNotExist, UnKnown } /// &...原创 2019-10-14 13:12:59 · 142 阅读 · 0 评论 -
网络数据请求request
文章目录前言1. 基于WebClient的post/get数据请求:1.1 get1.2 post2. 基于HttpWebRequest 的get/post方法2.1 get2.2 post2.2.1 contentType=application/x-www-form-urlencoded2.2.2 contentType=multipart/form-data2.2.3 调用代码前言关于网...原创 2019-10-14 10:56:46 · 686 阅读 · 0 评论 -
httpclient
文章目录前言1.0 get1.1 post1.1.1 contentType=application/x-www-form-urlencoded1.1.2 multipart/form-data1.2 其他前言在此讲一下httpclient类的使用,在之前《网络数据请求request》中讲过WebClient和HttpWebRequest ,在此讲一下httpclient,同时对《网络数据请求...原创 2019-10-14 10:26:46 · 268 阅读 · 0 评论 -
Process类调用exe
前言对Process类调用exe 、传入参数带空格以及返回值问题汇总1.0 返回值为int下述代码中fileName为调用的exe路径,入口参数为para,其中多个参数用空格分开,当D:/DD.exe返回值为int类型时。Process p = new Process(); string fileName = @"D:/DD.exe"; string para ="aa...原创 2019-10-14 09:49:59 · 476 阅读 · 0 评论 -
打印问题汇总
文章目录前言1.0 使用Process类1.1 PrintDocument1.2 获取打印机当前打印状态前言总结一些控制打印机的方法以及存在的问题,本文不包括window form的打印机组件使用,只是局限于纯代码层面1.0 使用Process类打印文本和图片均可以采用process类调用进程进行,但是在打印图片时会弹出打印预览的框,不容易解决 private static void...原创 2019-10-14 09:43:35 · 364 阅读 · 0 评论 -
Md5与HMAC-SHA256
文章目录MD5签名算法HMAC-SHA256签名算法MD5签名算法private string CalMd5(string str) { var md5 = MD5.Create(); var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); var sb...原创 2019-10-14 09:19:03 · 663 阅读 · 0 评论 -
C#基础_权限修饰
文章目录1.0 Public1.1 Private1.2 Protected1.3 Abstract1.4 Sealed1.5 Virtual/Override1.0 Public公开权限1.1 Private修饰类时类为程序集或者包含此类的类内部权限;修饰变量时只能类内部使用;1.2 Protected修饰变量,只能继承类可以使用,对外(包括继承类的实例)无权限;1.3 Abstr...原创 2019-10-12 16:49:57 · 123 阅读 · 0 评论