![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
算盘
喜欢徒步,喜欢读书
展开
-
C#对txt文件的读写操作
txt文件的读写原创 2022-07-14 16:48:51 · 11428 阅读 · 0 评论 -
C#记录日志方法
日志,C#原创 2022-07-06 11:05:55 · 1371 阅读 · 0 评论 -
红黑树的介绍
左倾的红黑树必须满足以下条件:1、红结点均为左结点2、没有任何一个结点同时连接两个红结点3、树是完美黑色平衡,即空结点到根结点路径上经过黑色结点的数量是相同的4、新加入的结点均为红结点5、根结点是黑色的...原创 2021-07-01 15:47:20 · 84 阅读 · 0 评论 -
HTTP状态码被分为五大类
级别 概述 描述1XX Informational 信息性状态码,表示接受的请求正在处理2XX Success 成功状态码,表示请求正常处理完毕3XX Redirection 重定向状态码,表示需要客户端需要进行附加操作4XX Client Error 客户端错误状态码,表示服务器无法处理请求5XX Server Error 服务器错误状态码,表示服务器处理请求出错...原创 2021-05-26 22:29:09 · 355 阅读 · 0 评论 -
RESTful的基本特点
1、无状态2、面向"资源"3、使用HTTP的动词4、HATOAS超媒体即应用状态引擎原创 2021-05-10 18:17:41 · 161 阅读 · 0 评论 -
MD5加密
public static string MD5Encrypt32(string password){ string pwd = ""; MD5 md5 = MD5.Create(); byte[] b = md5.ComputeHash(Encoding.UTF8.GetBytes(password)); for (int i = 0; i < b.Length; i++) { pwd = pwd + b[i].ToString("X");.原创 2021-05-02 13:20:52 · 80 阅读 · 0 评论 -
签名(signed)cookie和令牌(token)cookie
对于用来登录的cookie,有两种常见的方式可以将登录信息存储在cookie里面:一种是签名(signed)cookie,另一种是令牌(token)cookie签名cookie通常会存储用户名,可能还有用户ID、用户最后一次成功登录的时间,以及网站觉得有用的其他任何信息。令牌cookie会在cookie里面存储一串随机字节作为令牌,服务器可以根据令牌在数据库中查找令牌的拥有者。签名cookie优点:验证cookie所需的一切信息都存储在cookie里面。cookie可以包含额外的信息(addit原创 2021-02-09 09:49:38 · 1374 阅读 · 0 评论 -
HTTP协议---GET vs POST
1、从[参数]的传递方面来看,GET请求的参数是直接拼接在地址栏URL的后面,而POST请求的参数是放到请求体里面的。2、从[长度]限制方面来看,GET请求有具体的长度限制,一般不超过1024KB,而POST理论上没有,但是浏览器一般有个界限。3、从[安全]方面看,GET请求相较于POST,因为数据都是明文显示在URL上面的,所以安全和私密性不如POST。从本质上来说,GET和POST都是TCP连接,并无实质的区别。但是由于HTTP/浏览器的限定,导致它们在应用过程中体现出了一些不同。GET产生原创 2020-12-17 09:36:05 · 362 阅读 · 1 评论 -
内存缓存和分布式缓存的区别
1、内存缓存可以存储任意的对象2、分布式缓存的对象需要支持序列化3、分布式缓存远程请求可能失败,内存缓存不会原创 2020-12-12 10:35:29 · 368 阅读 · 0 评论 -
C#中数组中Skip、Take和Concat的用法
Skip是跳过第几个之后开始,取得的值包括当前下标值的内容Take是获取到第几个下标为止,取得的值不包括当前下标值的内容Concat是合并两个数组var listOne = new List<int>();var listTow = new List<int>();//例如:listOne里面是 1,2,3,4,5//例如:listTow里面是 6,7,8,9,10var result = listOne.Skip(2); //返回值就是 3,4,5va.原创 2020-11-14 14:41:51 · 3383 阅读 · 0 评论 -
执行Add-Migration Initial报错
执行Add-Migration Initial的时候,报错如下:Your target project 'XX.XXX.Web' doesn't match your migrations assembly 'XX.XXX.DataBase'. Either change your target project or change your migrations assembly.Change your migrations assembly by using DbContextOptionsB.原创 2020-11-08 20:53:38 · 4398 阅读 · 0 评论 -
理解IOC和DI
IOC 控制反转是一种目标1、解耦2、屏蔽细节DI依赖注入:是实现IOC的手段原创 2020-09-01 10:27:05 · 114 阅读 · 0 评论 -
SqlBulkCopy批量插入数据库
/// <summary> /// SqlBulkCopy批量插入数据库 /// </summary> /// <param name="dtData">数据源</param> /// <param name="targetTableName">目标数据表</param> /// <returns></returns>...原创 2020-08-04 14:55:05 · 166 阅读 · 0 评论 -
C#中使用$替换string.Format
最近工作中,遇到了一个问题,最后发现是在使用string.Format的时候,由于查询条件太多,导致赋值的时候出错。string sqlOne = string.Format(@" select * from MD_Person where Code='{0}' AND Role=N'{1}' AND Type=N'{2}'", code, role, type);这种写法,当查询条件...原创 2020-04-27 11:47:42 · 1236 阅读 · 0 评论 -
C#中List去掉重复数据
public class User{ public int ID { get; set; } public int Name { get; set; }}List<User> result = new List<User>(); result = result.Where((x, i) => result.FindInd...原创 2020-04-19 00:09:42 · 1788 阅读 · 0 评论 -
C#生成二维码
1、安装ThoughtWorks.QRCode包2、引入using ThoughtWorks.QRCode.Codec;3、具体代码 public string DrawQRCode(string enCodeString, string width, string height) { string downPath = ...原创 2020-04-09 20:00:55 · 334 阅读 · 0 评论 -
C#中的LinkedList/Queue/Stack
1、LinkedList//linkedlist:范型的特点;链表,元素不连续分配//找元素要遍历 查找不方便//增删 比较方便//节点数值可以重复WriteLine("******LinkedList<T>******");LinkedList<int> linkedlist = new LinkedList<int>();linkedlis...原创 2020-04-08 23:05:37 · 347 阅读 · 0 评论 -
Cookie对象的属性和方法
Cookie对象的属性如下所示:1、Name:获取或设置Cookie的名称。2、Value:获取或设置Cookie的Value。3、Expires:获取或设置Cookie的过期的日期和事件。4、Version:获取或设置Cookie的符合HTTP维护状态的版本。Cookie对象的方法如下所示:1、Add:增加Cookie变量。2、Clear:清除Cookie集合原创 2013-01-09 10:56:32 · 2410 阅读 · 0 评论 -
C#程序设计基础——运算符与表达式
运算符就是完成操作的一系列符号,它主要包括算术运算符、赋值运算符、关系运算符、逻辑运算符、条件运算、位操作运算符和字符串运算符。表达式就是运算符和操作数的组合,如a*b+1-c。表达式主要包括算术表达式、赋值表达式、条件表达式以及布尔表达式等。算术运算符与表达式C#提供的运算符有五种:“+”加法运算符、“-”减法运算符、“*”乘法运算符、“/”除法运算符、“%”原创 2016-08-10 23:22:50 · 1034 阅读 · 0 评论 -
C#程序设计基础——转义字符
\’ 单引号\” 双引号\\ 反斜杠\0 空字符\a 感叹号\b 退格\f 换页\n 换行\r 回车\t 水平Tab\v 垂直Tab原创 2016-08-08 21:45:31 · 339 阅读 · 0 评论 -
构造函数与析构函数
构造函数构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化。每个类都有构造函数,即使没有声明它,编译器也会自动提供一个默认的构造函数。使用构造函数时需要注意以下几个问题构造函数名与类名相同构造函数没有返回类型构造函数的主要作用是完成对类的对象初始化创建类的对象时(用new关键字),系统自动调用构造函数,即必须使用操作符new来调原创 2016-08-18 23:05:50 · 481 阅读 · 0 评论 -
C#程序设计基础——数据类型
C#是强类型语言,因此每个变量和对象都必须具有声明类型。数据类型可描述为内置数据类型(如int或char),用户定义数据类型(如class或interface)。数据类型还可以定义为值类型(用于存储值),引用类型(用于存储对实际数据的引用)。 值类型 值类型的内容存储在堆栈分配的内存中,如果一个变量是使用基本的内置数据类型之一或用户定义的结构进行声明的,则该变量为值原创 2016-08-06 12:54:03 · 628 阅读 · 0 评论 -
C#程序设计基础——变量
变量表示数值,字符串值或类的对象。变量存储的值可能会发生更改,但名称保持不变。C#是一种强类型语言,在变量中存储值之前,必须指定变量的类型。变量的命名规则:1-变量只能有字母,数字和下划线三种字符组成,且第一个字符必须为字母或下划线2 -C#中的关键字不能作为变量名。3 -C#中的库函数名称不能作为变量名。当C#语言与 其它语言进行交互时为避免冲突,C#原创 2016-08-05 23:51:14 · 554 阅读 · 0 评论 -
C#程序设计基础——常量
C#程序设计基础——变量变量是在编译时已知,并且在程序的生存期内不发生更改的不可变值。常量使用const修饰符进行声明。常量必须在声明时初始化,且常量的类型必须为以下类型之一:sbyte/byte/short/ushort/int/uint/long/ulong/char/float/double/decimal/bool/string/枚举类型/引用类型。原创 2016-08-04 23:33:26 · 505 阅读 · 0 评论 -
配置Session变量的生命周期
在Web.config文件中配置Session变量的生命周期是在节中完成的,在配置Session的生命周期时,可以设置以下几个参数mode:该参数用于设置存储会话状态。状态包括Off、Inproc、StateServer和SqlServer。Off表示禁用会话状态,Inproc表示工作进程自身存储会话状态,StateServer表示将把会话信息存放在一个单独的ASP.NET状态服务中,原创 2016-03-01 23:06:31 · 636 阅读 · 0 评论 -
try...catch..finally
try:包含抛出异常的代码catch:包含抛出异常时要执行的代码finally:包含总是会执行的代码,如果没有异常产生,则在try块之后执行,如果处理了异常,就在catch块后执行,或者在未处理的异常上移到调用堆栈之前执行。在try块的代码中出现异常后,发生的事件依次是:1、try块在发生异常的地方中断程序的执行2、如果有catch块,就检查该块是否匹配已抛出的异常类型原创 2015-03-24 21:55:25 · 425 阅读 · 0 评论 -
字符串中的空格
.Trim():删除输入字符串中的空格.TrimStart():把字符串前面的空格去掉.TrimEnd():把字符串后面的空格去掉.PadLeft():在字符串的左边添加空格.PadRight():在字符串的右边添加空格原创 2015-03-18 22:31:41 · 758 阅读 · 0 评论 -
创建.NET应用程序所经历的步骤
1、使用某种.NET兼容语言(如C#)编写应用程序。2、把代码编译为(CIL),存储在程序集中。3、在执行代码时(如果这是一个可执行文件,就自动运行,或者在其他代码使用它时运行),首先必须使用JIT(Just-In-Time)编译器将代码编译为本机代码。4、在托管的CLR环境下运行本机代码,以及其他应用程序或进程。原创 2015-03-06 22:54:04 · 1450 阅读 · 0 评论 -
C#程序设计基础——字符串
C#字符串使用string关键字声明,且由一个或多个字符构成的一组字符。串联字符串串联字符串是将一个字符串追加到另一个字符串末尾的过程。使用“+”或“+=”运算符串链字符符文本或字符串常量。串联字符串还可以使用string.Concat替换字符串使用Replace方法将实例中的指定Unicode字符或string的所有匹配项替换为其它指定的Uni原创 2016-08-12 20:20:31 · 396 阅读 · 0 评论 -
C#程序设计基础——类、对象、方法
类与对象类类是一种构造,通过使用该构造,用户可以将其他类型的变量、方法和事件组合在一起,从而创建自定义类型。类就像一个蓝图,它定义类型的数据和行为。对象定义类之后,便可通过将类加载到内存中来使用它。已加载到内存中的类称为“对象”或“实例”。可以通过使用C#关键字new来创建类的实例。方法“方法”是包含一系列语句的代码块原创 2016-08-14 17:10:59 · 734 阅读 · 0 评论 -
将传进来的字符串保存为文件
''' ''' 将传进来的字符串保存为文件 ''' ''' 文件保存路径 ''' 文件全路径 ''' 字符串 ''' Public Sub BinaryToFile(ByVal savePath As String, ByVal fullPath As String,原创 2017-09-13 09:55:59 · 845 阅读 · 0 评论 -
面向对象设计原则
1、单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离2、开闭原则定义:软件实体应当对扩展开放,对修改关闭。指软件实体应尽量在不修改原有代码的情况下进行扩展。3、里氏替换原则定义:所有引用基类的地方必须能透明地使用其子类的对象。里氏替...原创 2018-10-30 19:53:10 · 502 阅读 · 0 评论 -
Cookie对象的特点
1、存储少量不重要的数据2、存储在客户端的文本文件中(必须设置有效期,否则不被存储)3、安全性差4、存储的数据类型--字符串5、浏览器窗口无关,但与访问的站点相关6、具体特定的过期时间和日期7、在客户端存储后,将随着浏览器对相关网站页面请求而一并发送到Web服务器...原创 2018-09-23 15:51:38 · 692 阅读 · 0 评论 -
抽象类
概念:抽象类是一种特殊的类,该类本身不提供已经实现的方法,只定义了所有子类共享的一般形式,至于实现方法的内容,则交给子类去填充。抽象类与非抽象类(普通类)的区别1、抽象类只能作为其他类的基类,不能直接被实例化,而且对抽象类不能使用new操作符。抽象类如果含有抽象的变量或值,则它们要么是null类型,要么包含了对非抽象类实例的引用。2、抽象类可以包含抽象成员,但非抽象类中不可以包含抽象成员...原创 2018-08-28 22:18:04 · 602 阅读 · 0 评论 -
重载和重写的区别
方法重载的规则如下:1、参数列表:被重载的方法必须改变参数列表2、返回类型:可以改变返回类型3、修饰符:可以改变修饰符4、异常:可以声明新的或者更广泛的异常方法重写的规则如下:1、参数列表:必须与被重写方法的参数列表完全匹配2、返回类型:必须与超类中被重写的方法中声明的返回类型或子类型完全相同3、访问级别:一定不能比被重写方法强,可以比被重写方法弱4、非检查异常:重写方法可以抛...原创 2018-08-22 21:02:55 · 3730 阅读 · 1 评论 -
继承
当两者之间存在着"is-a"的关系,开发者会把这种关系成为继承。任何类都可以从另外一个类继承,也就是说,这个类拥有它继承的类的所有成员。C#中提供了类的继承机制,但是只支持单继承,而不支持多继承。在C#中,使用类的继承具有以下特点:1、派生类除了继承父类的特性外,还可以有自己独有的特性。2、子类不能拥有父类的私有成员。3、子类可以以自己的方式实现父类的功能(即方法重写)注意的问题...原创 2018-08-08 22:02:30 · 179 阅读 · 0 评论 -
封装
封装是一种隐藏的特性,开发者可以用一个公式来展示类的封装特性:封装的类=数据+对此数据进行的操作(即算法)。通俗的说,封装就是包起外界不必要知道的东西,只向外界展露可供展示的东西。C#中可以使用类来达到数据封装的效果,这样就可以把数据和方法封装成单一元素。以便于通过方法存取数据。封装还可以解决数据存取的权限问题,可以使用封装将数据隐藏起来,形成一个封闭的空间,然后可以设置哪些数据只能在这个...原创 2018-08-10 21:17:34 · 397 阅读 · 0 评论 -
C#中方法的详解
访问修饰符 修饰符 返回值类型 方法名(参数列表){ 语句块;}访问修饰符:所有类成员访问修饰符都可以使用,如果省略访问修饰符,默认是private。修饰符:在定义方法时修饰符包括virtual(虚拟的)、abstract(抽象的)、override(重写的)、static(静态的)、sealed(密封的)。override是在类之间继承时使用。返回值类型:用于在调用方法后...原创 2018-08-03 21:58:36 · 386 阅读 · 0 评论 -
C#中类的详解
类定义的具体语法形式类的访问修饰符 修饰符 类名{ 类的成员}类的访问修饰符:用于设定对类的访问权限,包括public、internal或者不写,用internal或者不写时代表只能在当前项目中访问类(internal是类的默认访问修饰符);public则代表可以在任何项目中访问类。修饰符:修饰符是对类本身特点的描述,包括abstract、sealed和static。abst...原创 2018-08-03 21:56:56 · 321 阅读 · 0 评论 -
文件与字符串之间的转换
/// /// 将传进来的文件转换成字符串 /// /// 待处理的文件路径(本地或服务器) /// public string FileToBinary(string FilePath) { FileStream fs = new FileStream(Fi原创 2017-09-12 14:14:31 · 1519 阅读 · 0 评论