基础知识
文章平均质量分 60
简单的绿竹
学无止境,活到老学到老。脚踏实地,一步一个脚印。坚持,用心,努力,加油!
展开
-
【C#日常】C#集合Dictionary获取第一个键值
PS:拓展方法,我已经讲过很多次了,可以翻看这篇文章:https://blog.csdn.net/q764424567/article/details/109263902。PS:Linq是使用拓展方法,遍历了集合的查询过程,使用简单方便,非常的有用。首先,分析一下这个需求,如果是输入或者List返回第一个值是很容易的,直接数组[0] 或者List[0],就可以返回第一个值,但是这个在字典中是不适用的。使用拓展方法,模仿LInq查询,返回第一个键值。使用了Linq查询函数,返回第一个键值。原创 2024-06-25 11:23:33 · 1026 阅读 · 0 评论 -
C# 正则表达式
Regex reg = new Regex(@"^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$");Regex reg = new Regex(@"[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?原创 2024-05-11 11:17:41 · 315 阅读 · 0 评论 -
notepad++的使用技巧
在任意行点击左边栏或者按Ctrl+F2会出现蓝色小点,这表示添加了一个书签,点击蓝色小点或按Ctrl+F2可以取消该行书签。取消单行注释:ctrl+shift+K(当快捷键重复时,可以自己设置,设置---管理快捷键)视图----移动/复制到当前文档-----移动到另一视图(可以配合水平/垂直同步滚动功能)选择一个括号,按Ctrl+b会跳转到与它对应的另外一半括号处。按Ctrl+g会弹出一个对话框,可以选择输入绝对行号跳转或者相对于当前行做偏移量跳转。展开当前层次: Ctrl+Alt+Shift+f。原创 2024-04-15 23:54:31 · 746 阅读 · 0 评论 -
Visual Studio项目的生成事件代码
这句命令是将生成的dll复制到另一个路径并修改后缀,多行命令直接回车换行就可以,也可以使用(ProjectName).*表示与项目基本名字相同的所有文件进行复制。在vs中有时候需要将编译生成的文件复制到另一个路径下使用,这时候可以使用后期生成事件命令行来实现自动复制,同时还可以修改文件名或者后缀。进入编辑后期生成界面后,点击宏按钮可以查看相关字段代表的路径或者文件名等信息。可以直接插入到编辑位置处。原创 2024-03-16 12:25:53 · 388 阅读 · 0 评论 -
C#解析JSON
全称“JavaScript Object Notation(JavaScript对象表示法)”,JSON 是存储和交换文本信息的语法。"id": 2,"name": "星河爆破",},"id": 3,"name": "九星连珠",},"id": 4,"name": "一语成谶",学习JSON基础教程在线JSON解析在线JSON解析及格式化验证网站。原创 2024-02-29 16:40:44 · 2114 阅读 · 0 评论 -
c#使用log4net的3种调用方法
param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" /><param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" /><param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />--< > = <> %n = 回车-->原创 2024-02-28 14:18:41 · 2073 阅读 · 0 评论 -
AppDomain 详解
而这个功能在某 些程序设计时是非常必要的,考虑你正在用反射机制写一个查看DLL中所有函数详细信息的程序,程序提供一个菜单让用户可以选择DLL文件,这时就需要让程 序能够卸载DLL,否则一旦用户重新得到新版本DLL时,必须要重新启动程序,重新选择加载DLL文件,这样的设计是用户无法忍受的。C#也提供了实现动态卸载DLL的方法,通过AppDomain来实现。3.MultiDomainHost,只有GAC代码是共享的,非GAC的Assembly依然会加载到被使用的AppDomain中,这样提高了静态变量的访问。原创 2024-02-26 17:45:16 · 891 阅读 · 0 评论 -
C#中全局处理异常方式
【代码】C#中全局处理异常方式。原创 2024-02-26 16:58:43 · 642 阅读 · 0 评论 -
C#的 Settings.Settings配置文件的使用方法
从此以后,读取都会从系统里保存的值里读取,手工修改App.config里的“用户”范围的属性不会影响到这些属性,但是在调用Reset方法时会从新从App.config里获取“用户”范围的属性写入到系统中。范围为“应用程序”的属性,读取都是从APP.CONFIG里获取,设置也可以通过手工修改App.config改变,但是在程序中无法对其进行赋值,只能读取。3、内存----程序启动后,实例化settings对象,该实例在创建的时候从系统(如果系统中没有就如前面提到的从配置文件中获取)读取在内存中。原创 2024-02-20 14:11:46 · 839 阅读 · 0 评论 -
大端模式和小端模式的区别
参考文章。原创 2024-02-19 16:13:11 · 1288 阅读 · 0 评论 -
String.format()详细用法
String 类有一个强大的字符串格式化方法 format()。下面是常用的方法总结。一、占位符类型String formatted = String.format("%s今年%d岁。", "小李", 25); // "小李今年25岁。"二、字符串和整数格式化 // 将第二个入参拼接到模板中,入参长度如果不足10 左侧用空格补齐,超过10全量输出System.out.println(String.format("%10s, world", "Hello"));// 输出 " Hello,原创 2024-02-19 15:33:34 · 4962 阅读 · 0 评论 -
C# 字符串格式化
也就是说,若要单独使用自定义格式说明符“d”、“f”、“F”、“h”、“m”、“s”、“t”、“y”、“z”、“H”或“M”,请指定“%d”、“%f”、“%F”、“%h”、“%m”、“%s”、“%t”、“%y”、“%z”、“%H”或“%M”。如果“E”、“E+”、“E-”、“e”、“e+”或“e-”中的任何一个字符串出现在格式字符串中,而且后面紧跟至少一个“0”字符,则数字用科学记数法来格式化,在数字和指数之间插入“E”或“e”。“E”、“E-”、“e”或“e-”格式指示符号字符仅置于负指数前面。原创 2024-02-19 15:14:27 · 1682 阅读 · 0 评论 -
explorer.exe 作用
有时候修改完注册表信息后需要点击F5按钮,当F5没用时候则需要重新启动,才能使修改生效,其实不需要这么麻烦.按下"CTRL+ALT+DEL",打开任务管理器结束进程选项中的Explorer.exe,然后在点击"任务管理器"中的"新建任务",在打开的文本框中输入Explorer.exe,然后回车确认,就重新加载了Explorer.exe,让注册表快速生效.如果用户发现任务管理器中有两个或多个Explorer.exe进程,那么就要检查是否中了远控了,最好用木马专杀工具扫扫。Explorer.exe是什么。原创 2024-01-15 21:44:43 · 962 阅读 · 0 评论 -
C# 各数据类型 范围
long -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 有符号 64 位整数。int -2,147,483,648 到 2,147,483,647 有符号 32 位整数。ulong 0 到 18,446,744,073,709,551,615 无符号 64 位整数。类型 大致范围 精度。原创 2024-01-08 09:36:33 · 761 阅读 · 0 评论 -
int 类型取值范围最大能到多少 16进制与2进制之间的转化 16进制占字节问题 16 进制与2进制的关联
0x7fffffff = 一共8个数, 一个 f 是 4个 二进制位 , 两个 f 才占用一个字节。0x7fffffff = 一共8个数, 一个 f 是 4个 二进制位 , 两个 f 才占用一个字节。原文链接:https://blog.csdn.net/judongbin123/article/details/81093275。所以,int占32位的时候,最大可以赋值为:2147483647。也就是0x7fffffff。原创 2024-01-08 09:32:55 · 453 阅读 · 0 评论 -
C#事件中sender和e参数的理解
EventArgs是事件参数,比如说你用鼠标点击窗体,那么EventArgs是会包含点击的位置等等,它用来辅助你处理事件。sender是事件源,表示触发事件的那个组件,比如说你按下按钮,那么sender就是按钮。原创 2024-01-03 14:43:02 · 713 阅读 · 0 评论 -
比特(位bit),字节(Byte),进制(二进制,十六进制)的关系
在编程深入底层一定会探究内存布局,变量以及对象在内存中的占用情况。比如一个int类型占用空间是多大,double占用又是多大。一个变量在内存布局总分配多少内存?一片内存能装下几个二进制位,几个十六进制位。想要探究这些就要彻底搞清:比特(位bit),字节(Byte),进制(二进制,十六进制)的联系和区别。原创 2023-12-08 14:45:05 · 1690 阅读 · 0 评论 -
位(bit)、字节(byte)、字符、编码
在计算机发明的时候,由于计算机只能表示二进制的数据,美国为了交流通信方便,约定了一个编码系统,就是ASCII码,把abc…对应,发现差不多刚好128个数,半个字节的长度,为了防止以后需要为新的符号编码,于是干脆取一个字节,最高位置为0,后七位从0-127分别对每一个符号编码。utf-16是用两个字节来编码所有的字符,utf-32则选择用4个字节来编码。gbk编码规定,计算机不能在每次都只读一个字节那么死板了,要先看看第一位是不是为0,要是为0的话,就当作ASCII码来读入一个字节,不然的话就读入两个字节。原创 2023-12-08 10:50:24 · 1120 阅读 · 0 评论 -
计算机存储结构分析(寄存器,内存,缓存,硬盘)
寄存器、高速缓存、内存、硬盘、光盘等,为啥有这么多种存储方式,对于不太了解的人,总是觉得云里雾里的,搞不明白原因。计算机主要的功能就是运算(cpu),但是要完成一个任务,就要读取运算指令,并将结果输出给用户;因此,指令的存储、运算过程中中间状态的存储、结果的保存等都需要存储器。第一代计算机,接收指令是通过读取穿孔卡片来实现的,这个穿孔卡片就可以理解为最老的用来存储命令的存储器。理想状态下,存储器的执行速度应该快过计算机的运算速度,这样才可以最大化的利用cpu的计算能力。原创 2023-12-08 10:06:13 · 1245 阅读 · 0 评论 -
寄存器、缓存、内存、硬盘、存储器的理解
缓存其实是内存中高速缓存(cache),它之所以存在,是因为当cpu要频繁访问内存中的一些数据时,如果每次都从内存中去读,花费的时间会更多,因此在寄存器和内存之间有了缓存,把cpu要频繁访问的一些数据存储在缓冲中,这样效率就会更高,但需要注意的是,缓冲的大小也是很小的,不能存放大量的数据,并且缓存中存放的数据会因为cpu的访问而被替代,必须某个数据开始被cpu频繁访问,但后来不再频繁,那这个数据的空间会被其他访问频繁的数据所占据(那些数据会被暂时存储在缓存中是算法问题)。cpu访问寄存器的速度是最快的。原创 2023-12-08 09:30:27 · 817 阅读 · 0 评论 -
C#里面的泛型(T),泛型类,泛型方法,泛型接口等简单解释
这个时候,TClass这个类就是泛型类,而它的构造方法,则和普通的类的构造方法的写法是一样的。当你要实例化这个类型的时候,必须告诉这个类型T代表哪个类型,之后,所有这个类里面被标识了T的地方,都是指你开始实例化指明的类型。这样我们不难理解,T这个东西的作用,其实就是一个通用的容器,制造它的人开始不指定它是用来装什么的,而使用者在使用它的时候要告诉这个容器准备用来装什么,容器知道了用来装什么之后,后面所有存入操作,它都要检查一下你放的东西是不是开始指定的东西类型。如果只写一个重载方法,则可以写成。原创 2023-12-07 10:13:00 · 1394 阅读 · 0 评论 -
url最大长度
7,Microsoft Internet Information Server(IIS)服务器能接受最大url的长度为16,384个字符。2,Firefox浏览器URL的长度限制为65,536(64k)个字符。3,Safari 浏览器URL最大长度限制为 80,000个字符。4,Opera 浏览器URL最大长度限制为190,000个字符。6,Apache 服务器能接受最大url长度为8,192个字符。1,IE浏览器对URL的最大限制为2083(2k)个字符。原创 2023-11-22 10:38:22 · 1531 阅读 · 0 评论 -
寄存器、缓存、内存之间的关系和区别
PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,现在已经不可能使用了,而EPROM是通过紫外光的照射擦除原先的程序,是一种通用的存储器。,它是为读取二级缓存后未命中的数据设计的一种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率,从某种意义上说,预取效率的提高,大大降低了生产成本却提供了非常接近理想状态的性能。按与CPU远近来分,离得最近的是寄存器,然后缓存,最后内存。原创 2023-11-22 09:39:19 · 1512 阅读 · 0 评论 -
【浅谈】计算机存储 寄存器,高速缓存,内存和硬盘 栈区,堆区和静态区
像用普通int定义的a和b都是变量,无论是全局变量还是局部变量,都是要放在内存中的,用“register”修饰后的b,可以建议将b的数据1放到寄存器中,但运行的时候,系统会自动判定,至于放不放到寄存器中,还要看系统人老人家怎么看啦~~硬盘是用来做内存扩充的,像我们平常下载的游戏,缓存的资源,都是放在硬盘上,所以硬盘上的空间要明显更大一点,但是想要使用硬盘上的数据时,要将硬盘数据拿到内存中。虽然test运行了七次,但是每次进入后,a加1,同时出作用域,a的数据销毁,再次进入,a的初始数据,还是3。原创 2023-11-21 10:43:38 · 96 阅读 · 0 评论 -
redis基础知识:数据结构SDS
https://blog.csdn.net/weixin_37598243/article/details/127896092原创 2023-11-16 11:11:14 · 104 阅读 · 0 评论 -
使用windbg分析dump文件的方法
https://zhuanlan.zhihu.com/p/613434365一般操作如下:原创 2023-09-19 14:49:19 · 412 阅读 · 0 评论 -
使用C#为进程创建DUMP文件
程序异常崩溃前使用此类为进程创建DUMP文件,之后可以使用WinDbg等工具进行分析。原创 2023-09-19 09:52:43 · 908 阅读 · 0 评论 -
c# 字符串格式化日期时间
/2017/04/01 星期六 下午 01:16。原文链接:https://blog.csdn.net/yugui/article/details/120009896。原创 2023-09-19 09:48:10 · 3908 阅读 · 0 评论 -
c#using关键字的作用
c#using关键字的作用原创 2023-09-05 09:28:27 · 1170 阅读 · 0 评论 -
C#基础之输出换行符号
C#基础之输出换行符号原创 2023-02-20 15:24:33 · 603 阅读 · 0 评论 -
DTD与XSD的区别
https://blog.csdn.net/qq_17037733/article/details/80503560DTD(Document Type Definition)即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制一个DTD文档包含:(1)元素的定义规则;(2)元素间关系的定义规则;(3)元素可使用的属性,可使用的实体或符号规则新建一个.dtd文件:<!ELEMENT 班级 (学生+)><!ELEMENT 学生 (名字,年龄,介绍)>..原创 2022-03-11 10:05:56 · 167 阅读 · 0 评论 -
js判断字符串/对象中是否包含某个字符串
https://blog.csdn.net/weixin_44285250/article/details/103801667String对象的方法方法一: indexOf() (推荐)var str = "123";console.log(str.indexOf("3") != -1 ); // trueindexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。方法二: search()var ...原创 2022-03-01 13:19:26 · 1996 阅读 · 0 评论 -
ListBox获取、设置选中项用法
https://blog.csdn.net/xiaouncle/article/details/52243826ListBox控件的SelectedItems表示当ListBox允许选中多行时,用户选中的所有选项。SelectionMode=none表示无法选中,SelectionMode=one表示可选中一行,SelectionMode=MultiSimple表示可选中多行,SelectionMode=MultiExtended表示可选中多行且能用shift、ctrl来选择读取方法如..原创 2022-02-28 17:49:21 · 5077 阅读 · 0 评论 -
ASP.NET读取和设置Web.config文件
C#读取web.config文件信息web.config<?xml version="1.0"?><!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --><configuration> <appSettings> <add key="name" value="name1"/> </appS..原创 2022-02-24 14:17:43 · 626 阅读 · 0 评论 -
Excel怎样设置行高和列宽
https://jingyan.baidu.com/article/b2c186c814b7b8c46ff6ff63.html本经验教你使用Excel设置行高和列宽。工具/原料 Excel、行高、列宽 方法/步骤 打开电脑桌面上的Excel快捷方式,建立一个空白的EXcel文档。 选定要设置行高和列宽的单元格,这一步是必须的,否则设置不能生效。 点击菜单栏的格式,从弹出菜单里面选择行,进而选择二级菜单行高。 填入合适的行高,点击..原创 2022-02-23 14:26:53 · 14409 阅读 · 0 评论 -
事件和方法有什么区别
事件是特殊的方法,基本一样,两个名词而言,事件这个名词只是更好的表述了自已的特性。事件更多强调是一种改变,一般是持久化关键数据的改变如状态变迁。方法可能只是计算中间结果。事件更多强调或固化了的事件发起者与事件的响应者的数据关联,强调双方的互动。方法可能在调用者与被调用者(执行者)间并没有数据参数。事件更多强调或固化了一种一对多的互动关系。而方法更多的是一对一的关系。事件更多的关注了事件发起者,发起事件的原因及发起方式。如时间事件,更改状态事件,信号事件,简单的调用事件。揭秘UML状...转载 2022-02-22 15:45:27 · 2150 阅读 · 0 评论 -
浅谈c#语言的类,事件,对象,方法和函数的区别
https://blog.csdn.net/stay_the_course/article/details/53044638在讨论这些关系之前让我们先来了解一下面向过程和面向对象的区别: 所谓面向过程就是把一切事物或者需要解决的问题都当做是一个过程来处理,而面向对象则是把一切事物当成一个一个的对象来处理,这两者有什么区别呢,举一个简单的例子: 编写一个驾驶汽车的程序: (1)面向过程的程序设计: 编写一个函数,void drivecar();按过程分步处理具体的这里不做列举。 ...转载 2022-02-22 14:47:04 · 1613 阅读 · 0 评论 -
C# LIST 使用GroupBy分组
https://blog.csdn.net/zhangxiao0122/article/details/88570472根据论坛及博客整理。原有list集合, List<CommodityInfo> commodityInfoList = new List<CommodityInfo>(); public class CommodityInfo { public string StoreID {get; set;} ..原创 2022-01-30 15:02:53 · 10993 阅读 · 0 评论 -
C#中Skip和Take的用法
https://www.cnblogs.com/innershare/p/10709226.htmlSkip()和Take()方法都是IEnumerable<T> 接口的扩展方法,包括C#中的所有Collections类,如ArrayList,Queue,Stack等等,还有数组和字符串都可以调用这两个方法。var testList = new List<int>();//比如 testList里面是 1,2,3,4,5,6,7,8,9,10var result =...原创 2022-01-28 14:19:55 · 1213 阅读 · 0 评论 -
C#中类的实例化过程
https://www.cnblogs.com/oyang168/p/11171771.html创建某个类型的第一个实例时,所进行的操作顺序为:1.静态变量设置为02.执行静态变量初始化器3.执行基类的静态构造函数4.执行静态构造函数5.实例变量设置为06.执行衯变量初始化器7.执行基类中合适的实例构造函数8.执行实例构造函数同样类型的第二个以及以后的实例将从第五步开始执行....原创 2022-01-21 10:17:37 · 1368 阅读 · 0 评论