文章分类 - C#
1
摘要:[TOC] 原文链接:[WPF实现系统托盘](https://www.cnblogs.com/jeffersonqin/p/13671241.html) 在WinForm当中,我们可以使用非常轻松地实现系统托盘,**在.NET Core的WPF当中,System.Windows.Form并不能作为命
阅读全文
摘要:[TOC] 原文链接:[C#读写Excel的4种方案(OpenXml、NPOI、EPPlus、Spire.Office)](https://blog.csdn.net/m0_49284219/article/details/121728799) # 简介 在项目中需要使用C#读写Excel,每天定时
阅读全文
摘要:[转]AES.js加密解密与C#的相互转换 [TOC] 原文链接:[AES.js加密解密与C#的相互转换](https://blog.csdn.net/xhl_james/article/details/89512551) *注:删除了原文最后部分的调试截图,**增加了扩展部分的内容**(自己使用过
阅读全文
摘要:原文链接: C# Owin初探 概念理解(一) C# Owin 创建与测试自己的中间件Middleware(二) 本文是对上面两篇文章的汇总,对句式和格式做了一些调整,中间加了一些注释。本文相对于原文只是多了一些细节,原创内容不多,姑且就放到转载文章里面吧。 概念理解 1.Owin定义 Owin是O
阅读全文
摘要:原文链接:让代码帮我们写代码(一) 示例全部来自转载的文章,这里只是简单做了一些修改,留给自己以后使用。 定义一个 ClassDescription 类来帮助描述需要生成的 class 长啥样: public class ClassDescription { public string SpaceN
阅读全文
摘要:原文链接:ASP.NET Core 3.1系列(16)——EFCore之Code First 1、前言 前一篇博客介绍了EFCore中的DB First开发模式,该模式可以根据数据库生成实体类和数据库上下文,因此适用于数据库已经存在的场景。而与之相对应的,Code First主要是根据自定义的实体类
阅读全文
摘要:原文链接:ASP.NET Core 3.1系列(2)——.NET Core中内置的IoC容器 1、前言 作为.NET Core中最为重要的概念,依赖注入和控制反转可谓是无处不在,因此微软也为我们提供一个内置的IoC容器,下面就来介绍一下它的使用方法。 2、内置的IoC容器 创建一个控制台程序,引入如
阅读全文
摘要:debug只在debug模式下才执行(运行按钮后面的下拉框可选)。
阅读全文
摘要:string是一个引用类型,是一个sealed类,存储在堆内存上,每一次修改都会从新创建一个新的string来存储,原始的会自动被回收。在实际开发工程中,通过+拼接字符串比较常见,但是如果只是见到这种方式也就不那么友好了。StringBuilder其实内部相当于是维护的一个字符数组,是一个可以动态增加自身数据长度,其默认长度为16,当存储的字符串超出其长度是,会自动扩容2倍长度。在初始化StringBuilder的时候会根据预估将要存储的字符串大小,给StringBuilder初始化一个长度,这也是对StringBuilder的一些使用技巧。对于一些格式的数据拼接填充,string.Format也是经常看见的,它的一个很大好处就是看上去比较清晰。其实我们看过string的底层实现我们会发现,其底层本质还是StringBuilder来实现的。
阅读全文
摘要:FileStream 对象表示在磁盘或网络路径上指向文件的流,这个类提供了在文件中读写字节的方法。但经常使用 StreamReader 或 StreamWriter 执行这些功能,这是因为 FileStream 类操作的是字节和字节数组,而 StreamReader 或 StreamWriter 操作的是字符数据。字符数据易于使用, 但是有些操作,比如随机文件访问(访问文件中间某点的数据),就必须由FileStream对象执行。BinaryReader 与 BinaryWriter 都从 System.Object 直接派生,这些类型可以让我们从基层流中以简洁的二进制格式读取或写入离散数据类型。StreamReader 或 StreamWriter 通过使用特定编码在字符与字节之间进行转换,提供了高效的流读写功能,可以直接用字符串进行读写,而不用转换成字节数组。默认情况下,StreamReader 和 StreamWriter 类都使用 UTF-8编码。UTF-8编码正确处理 Unicode 字符并确保操作系统的本地化版本之间保持一致。
操作byte数据时要用FileStream
阅读全文
摘要:StreamReader及StreamWriter类中包含一个私有的Stream,StreamReader或StreamWriter在Close的时候都会关闭FileStream。在 sw.Close( );执行完毕后,其实fs已经被关闭了。因此 fs.Close( );其实是可以省略的。当然,这样的写法不会有任何问题,因为Dispose不会被执行两次。如果先执行 fs.Close( );再执行 sw.Close( );将引发异常。
阅读全文
摘要:首先创建如下枚举信息,并使用DescriptionAttribute类增加描述特性。两种方法获取枚举的描述信息,方法一:编写获取枚举描述方法 ,方法二:通过枚举扩展类。
阅读全文
摘要:C# 2.0版 - 2005、C# 3.0版 - 2007、C# 4.0版 - 2010、C# 5.0版 - 2012、C# 6.0版 - 2015、C# 7.0版 - 2017、C# 8.0版 - 2019
阅读全文
摘要:对于“ + ”,“ - ”,“ * ”,“ / ”,“ is ”,“ as ” 等C#的运算符可能大家都再熟悉不过了。但是有时候大家在阅读一些网站上的代码或者开源项目的源码时,会遇到一些奇奇怪怪的运算符,特别当几个少见的运算符连在一起的时候,仿佛有一种 “别人的C#和我的C#怎么不一样” 的感觉。
随着C#的版本更新,它为我们提供了许许多多的语法糖和新运算符方便我们更流畅的来编写代码。当有时候遇到不认识的运算符,就会本着 “百度不行就谷歌” 的程序员大法来疯狂操作一波。但是!!搜索引擎他喵的居然不认这些符号。
阅读全文
摘要:在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数直接使用逗号(,)分割。
阅读全文
摘要:匿名函数(Anonymous Function)是表示“内联”方法定义的表达式。匿名函数本身及其内部没有值或者类型,但是可以转换为兼容的委托或者表达式树类型(了解详情)。匿名函数转换的计算取决于转换的目标类型:如果是委托类型,则转换计算为引用匿名函数所定义的方法的委托;如果是表达式树类型,则转换将计算以对象结构形式表示方法结构的表达式树。
一个委托是一个指向一个方法的引用,或者说,一个委托的实例就是一个指向某个方法的对象,这是一个简单却十分强大的概念。
只要有委托参数类型的地方,就可以使用Lambda表达式。使用匿名方法的地方可以使用Lambda表达式来代替。
阅读全文
摘要:使用 lambda 声明运算符=> 从其主体中分离 lambda 参数列表。 若要创建 Lambda 表达式,需要在 Lambda 运算符左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块。
任何 Lambda 表达式都可以转换为委托类型。 Lambda 表达式可以转换的委托类型由其参数和返回值的类型定义。 如果 lambda 表达式不返回值,则可以将其转换为 Action 委托类型之一;否则,可将其转换为 Func 委托类型之一。 例如,有 2 个参数且不返回值的 Lambda 表达式可转换为 Action
阅读全文
摘要:LINQ to XML 同时支持这两种方法。
使用函数方法时,编写可采用源文档并生成具有所需形状的全新结果文档的转换。
就地修改 XML 树时,编写可遍历内存中 XML 树节点并在其中导航以便根据需要插入、删除和修改节点的代码。
可以对任一方法使用 LINQ to XML。 使用的类相同,在某些情况下使用的方法也相同。 但这两种方法的结构和目标却大相径庭。 例如,在不同情况下,其中一种方法通常具有更好的性能,使用更多或更少的内存。 另外,其中一种方法会更容易编写并生成更容易维护的代码。
阅读全文
摘要:DOM(文档对象模型):使用DOM的好处在于它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询。但是,DOM的缺点在于它需要一次性的加载整个文档到内存中,对于大型的文档,这会造成资源问题。
Linq模式:利用C#的linq方法(C#的查询功能)来操作xml文件,代码少易于理解。**LINQ to XML 使用 .NET 功能,相当于更新的和重新设计的文档对象模型 (DOM) XML 编程接口。**
本文主要比较DOM方法与Linq方法:DOM to XML方法中,是从下至上生成 XML 树;即先创建文档,然后创建元素,再将元素添加到文档。这种编码方式不会提供很多有关 XML 树结构的可视信息。LINQ to XML 也支持用此方法创建 XML 树,但也支持另一种方法,即函数构造。 函数构造使用 XElement 和 XAttribute 构造函数生成 XML 树,用于构造 XML 树的代码可显示基础 XML 的结构。
阅读全文
摘要://获取和设置包含该应用程序的目录的名称。(推荐)
string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
result: X:\xxx\xxx\ (.exe文件所在的目录+"\")
阅读全文
1
