随笔- 672
文章- 2
评论- 325
阅读-
281万
随笔分类 - .Net Core
C# 8中使用IAsyncEnumerable<T>和IAsyncEnumerator<T>,来实现异步迭代(链接)
摘要:首先,我们需要知道为什么我们要使用IAsyncEnumerable<T>和IAsyncEnumerator<T>来实现异步迭代,它有什么好处?可以参考下面这篇文章: IAsyncEnumerable In C# 8 其次,关于异步迭代的实现原理和细节,可以参考下面这篇文章: Iterating wi
阅读全文
C# ValueTask相关文章(链接)
摘要:微软官方文档介绍: ValueTask<TResult> Struct ValueTask Struct 为什么我们需要使用ValueTask,可以参考下面几篇文章: Why would one use Task<T> over ValueTask<T> in C#? Understanding t
阅读全文
关于StackExchange.Redis的一些总结
摘要:NuGet包地址: StackExchange.Redis 官网地址: StackExchange.Redis 关于StackExchange.Redis的基本用法可以查看: C# StackExchange.Redis 用法总结 其中讲到了使用StackExchange.Redis来启用分布式锁,
阅读全文
C#正则表达式超时问题(链接)
摘要:下面这篇帖子阐述了,如何使用C#中正则表达式的超时设置: How do I timeout Regex operations to prevent hanging in .NET 4.5? 在微软的官方文档中,也提到了C#正则表达式的超时问题: Defining a Time-Out Value,来
阅读全文
C#的子namespace中,可以直接访问和使用父namespace的成员
摘要:新建一个.NET Core控制台项目,敲入下面代码进行测试: using System; //定义namespace A namespace A { public class MyClassInA { } } //定义namespace A.B.C,它是namespace A的子namespace
阅读全文
C#证明静态方法中的成员在线程之间是独立的
摘要:新建一个.NET Core控制台项目,敲入下面代码: using System; using System.Threading; using System.Threading.Tasks; namespace NetCoreStaticDemo { //定义类Container,是引用类型 clas
阅读全文
C#中,隐式转换(implicit)和显式转换(explicit)重载方法,不支持将接口类型作为转换的源类型或目标类型
摘要:我们知道可以在C#的类和结构体中,定义隐式转换(implicit)和显式转换(explicit)的重载方法,也称作"用户定义的转换(User-defined conversions)"。但是其实在C#中有一个规定,就是不能将接口类型作为隐式转换和显式转换重载方法的源或目标类型。 新建一个.NET C
阅读全文
C#中JSON字符串中的转义字符
摘要:新建一个.NET Core控制台项目,然后引入Json.NET的NuGet包:Newtonsoft.Json,我们使用Json.NET将类序列化为JSON字符串,再将JSON字符串反序列化为类,代码如下: using Newtonsoft.Json; using System; namespace
阅读全文
使用文件流,读写网络共享盘
摘要:新建一个.NET Core控制台项目,使用文件流读写网络共享盘文件,如下所示: using System; using System.IO; using System.Text; namespace NetCoreShareFolderReading { class Program { static
阅读全文
关于Microsoft.Data.SqlClient(链接)
摘要:官方NuGet链接如下: Microsoft.Data.SqlClient 微软官方文档介绍: Introduction to Microsoft.Data.SqlClient namespace 另一篇很详细的介绍文章: Introducing the new Microsoft.Data.Sql
阅读全文
访问修饰符(C# 编程指南)(链接)
摘要:下面这篇微软官方文档,介绍了C#中的public、private、protected、internal等访问修饰符: Access Modifiers (C# Programming Guide) 文档中有两个地方,这里特别强调下: Classes and structs declared dire
阅读全文
抽象类为什么可以有构造函数?- Constructor of an abstract class in C#(转载)
摘要:问 Why is it possible to write constructor for an abstract class in C#?As far as I know we can't instantiate an abstract class.. so what is it for?You
阅读全文
.NET Core中创建和使用NuGet包
摘要:在.NET Core的项目中,如果我们要在项目中引用其它DLL文件,不建议直接在项目引用中添加DLL文件(虽然在.NET Core项目中也可以这么做),建议是去直接下载DLL文件所属的NuGet包。这样最大的好处是我们可以将要引用DLL文件的所有依赖文件也一起引入到项目中,这样保证了引用文件的完整性
阅读全文
生成的Guid会重复吗?(链接)
摘要:下面这篇帖子讨论了,在生成Guid的时候,会不会产生重复值,答案是会产生,但是机率很小。 Is a GUID unique 100% of the time? 其中这里提到了,V4版本的Guid不再使用计算机的MAC地址作为Guid的生成元素,取而代之的是使用一个随机数来生成Guid。所以这就是为什
阅读全文
C#中重载方法的一些总结
摘要:新建一个.NET Core控制台项目,我们来看看C#中重载方法的一些注意事项。 C#中多个重载方法之间的参数如果有继承关系,那么调用方法时,会调用与传入参数类型最接近的重载方法 我们来举个例子,下面我们定义了两个重载方法Do,它们的参数类型A和B是继承关系,类B继承类A,那么我们在调用Do方法时,到
阅读全文
EF Core中使用事务(链接)
摘要:下面这篇微软官方文档,介绍了如何在EF Core中使用事务: Using Transactions 请注意,里面提到了在.NET Core中TransactionScope对分布式事务的支持情况:Limitations of System.Transactions
阅读全文
TransactionScope在EF Core中的局限性(链接)
摘要:EF Core从2.1开始支持TransactionScope的使用,但是在EF Core中使用TransactionScope是有一些局限性的,原因是.NET Core是一个跨操作系统平台的框架,而TransactionScope的有一些特性只在Windows系统上支持,在Linux系统上不支持,
阅读全文
DateTimeOffset的构造函数抛出异常:UTC offset of local dateTime does not match the offset argument(转载)
摘要:DateTimeOffset Error: UTC offset of local dateTime does not match the offset argument 问: I'm trying to create a small method that converts the time fr
阅读全文
C#中,接口转换实验
摘要:在C#中,接口是一个比较特殊的存在,一个接口的实例,可以转换为没有实现该接口的类,并且不会发生编译错误。 为此,我们新建一个.NET Core控制台项目,然后使用如下代码来进行实验: using System; namespace NetCoreInterfaceTypeConversion { /
阅读全文
EF Core中如何使用LEFT JOIN
摘要:我们知道使用EF Core的Join函数可以实现SQL中的INNER JOIN,那么怎么实现LEFT JOIN呢? 答案就在GroupJoin、SelectMany和DefaultIfEmpty三个Linq函数的组合使用上。 下面我们举个例子,建立一个.NET Core控制台项目,来演示使用EF C
阅读全文