![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
忆水思寒
写博客,增定力,留记忆
展开
-
.NET的RulesEngine(规则引擎)使用
.net core .NET的RulesEngine转载 2023-03-10 13:15:31 · 2067 阅读 · 0 评论 -
Linq中SelectMany图文详解-Chinar
SelectMany中文教程转载 2022-08-01 18:56:48 · 511 阅读 · 0 评论 -
IQueryable和IEnumerable,IList的区别
IQueryable和IEnumerable,IList的区别转载 2022-06-17 13:51:09 · 212 阅读 · 0 评论 -
C#学习- 关于lock,mutex和semephore
1. lock()C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。lock是一种比较简单的线程同步方式,它是通过为给定对象获取互斥锁来实现同步的。Lock关键字可确保当一个线程位于代码的关键部分时,另一个线程转载 2022-02-17 14:50:27 · 818 阅读 · 0 评论 -
.Net Core 修改默认的启动端口
今天无意中发现一个变化,因为很久没看.net core的项目了,发现项目启动的默认端口已经不是5000了,记得很清楚,最早那还是.net core 1.x版本的时候,每次启动都会默认是5000端口号,而现在不是了。借此机会在来说一下,关于.net core项目修改默认端口号的解决方案,我们最熟知的是一种解决方案就是直接在Program.cs中创建We...转载 2021-10-28 20:02:04 · 3807 阅读 · 0 评论 -
5种设置ASP.NET Core应用程序URL的方法
默认情况下,ASP.NET Core应用程序监听以下URL: •http://localhost:5000•https://localhost:5001 在这篇文章中,我展示了5种不同的方式来更改您的应用程序监听的URL。 •在Program.cs中使用 UseUrls()•环境变量 - 使用DOTNET_URLS或者 ASPNETCORE_URLS•命令行参数 -...转载 2021-10-28 19:54:30 · 1400 阅读 · 0 评论 -
C# const与readonly 关键字的比较
最近使用项目的时候用到了常量,忽然发现这两个关键字不是很熟悉,特写此文,C#中const与readonly是C#里面的关键字。const与readonly定义的成员在初始化后都不能再改变 using System.Collections.Generic;using System.Linq;using System.Text;namespace ConstVSRea...转载 2021-10-26 09:52:23 · 98 阅读 · 0 评论 -
git撤销已经push到远端的commit
readonly 关键字不同于const关键字。const类型字段只能在声明字段的时候被初始化,而readonly字段既可以在声明的时候被初始化,又可以在构造函数中初始化。因此,readonly字段能够根据构造函数的使用拥有不同的值。并且,const字段是编译时常量,readonly字段能做运行时常量。————————————————版权声明:本文为CSDN博主「经世致用」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.n转载 2021-10-26 09:48:59 · 85 阅读 · 0 评论 -
.net core控制台基于backgroundService后台任务实现的指定时间运行的定时器
简单的实现了一个.net core控制台基于backgroundService后台任务实现的指定时间运行的定时器,到了第二天也会默认启动此时间点,可自定义配置多个时间段,多线程运行。话不多说,直接帖代码。<?xml version="1.0" encoding="utf-8" ?><configuration> <appSettings> <!--当天的某一点时间,可自己手动设置多段启动,也可手动删除,第二天到了时间点会自动默认启动-->转载 2021-08-04 09:57:40 · 1959 阅读 · 0 评论 -
C# Lambda的用法
C# Lambda的用法 我们过去遇到循环问题都是用foreach和for,慢慢就成了习惯,不愿意用其他简便的方式,lambda能代替循环而且简便了很多。 1:什么是lambda表示式 Lambda 表达式是一种可用于创建委托或表达式目录树的匿名函数(摘自MSDN)这句话是什么意思下面慢慢开始说起 2:用一张图来表示lambda的组成 就是形如(参数)=>{操作} 3:委托和lambda的用法...转载 2021-07-15 09:50:41 · 1080 阅读 · 0 评论 -
c# 使用await 与 async 实现异步编程
await : await 运算符只能用于async标记的异步方法中。 async :关键字只能标记返回值为void Task Task 的方法。 普通方法: 可以看到 Task 中的方法在子线程执行,其他都在主线程。会阻塞等待log的执行。 加上async关...转载 2021-01-22 17:24:33 · 468 阅读 · 0 评论 -
[C#] 文本写入文件,追加写入文件
有些基础的东西,该用的时候还总是会忘记,例如说这个写入文件,俗话说熟能生巧,恩恩, 多记下来以后查看方便;写入文件和这个对象 StreamWriterusing (StreamWriter sw = new StreamWriter(NewFilePath,true)){ sw.WriteLine(LogString);}这个...转载 2020-08-21 13:19:31 · 1765 阅读 · 0 评论 -
Yield return语句与return语句的4个不同点(上)
本文部分内容来源于书籍和网摘。return语句返回的是其所在方法的控制权,即终止该方法的此次执行;而迭代器方法运行到 yield return 语句时,会返回一个 expression,并保留当前在代码中的位置。 下次调用迭代器函数时,将从该位置重新开始执行。2、可以在同一个方法中同时...转载 2020-08-13 17:50:07 · 409 阅读 · 0 评论 -
C# yield return 用法与解析
当初没有认真理解 yield 这个关键字,现在又遇到了依旧不理解,为了以后不再为了 yield 困惑,决定好好研究一下 yield 的用法与意义:yield 从字面上理解有“退位,屈服”的意思,转一下弯就理解成“权限转移”,也就是将控制权交给别人,在这里就是把集合里满足条件(如果没有过滤条件,就是全体)的个体的操作转移给另一个对象。class Program { static void Main(string[] args) { foreac转载 2020-08-12 15:21:37 · 1401 阅读 · 0 评论 -
IEnumerable和IEnumerator 详解 .
初学C#的时候,老是被IEnumerable、IEnumerator、ICollection等这样的接口弄的糊里糊涂,我觉得有必要切底的弄清楚IEnumerable和IEnumerator的本质。下面我们先看IEnumerable和IEnumerator两个接口的语法定义。其实IEnumerable接口是非常的简单,只包含一个抽象的方法GetEnumerator(),它...转载 2020-08-10 11:55:13 · 732 阅读 · 0 评论 -
.NET 中创建支持集合初始化器的类型
对象初始化器和集合初始化器只是语法糖,但是能让你的代码看起来更加清晰。至少能让对象初始化的代码和其他业务执行的代码分开,可读性会好一些。本文将编写一个类型,可以使用集合初始化器构造这个类型。不只是添加元素的集合初始化器,还有带索引的集合初始化器。稍微提一下对象初始化器很普通的类型就可以支持对象初始化器,只需要对象有可以 set 的属性或者可访问的字段即可。public class Walterlv{ public string Site { get; set; }}初始化时可以使用转载 2020-08-10 11:22:10 · 161 阅读 · 0 评论 -
C#教程:简化的初始化
简化的初始化面向对象的编程语言通常都拥有流线型的对象创建过程, 毕竟, 在你准备开始使用一个对象时, 不管是通过代码的直接调用还是工厂方法或者其他的方式你都必须要先创建它. 在C# 2中有少数新的特性让初始化过程变得简单了一点. 然而如果要做的无法通过构造器参数完成, 很不幸——你需要创建对象, 然后手工初始化设置各个属性值.当你想一次初始化一序列对象的时候这可能会令人有点厌烦, 例如在一个数组或者集合中——没有一个”单个表达式”的做法可以用来初始化一个对象, 你必须被迫使用局部变量来做临时的处理, 或转载 2020-08-10 11:07:37 · 2331 阅读 · 0 评论 -
ASP.NET/C# 获取当前目录、当前完整路径、文件全路径、目录、扩展名、文件名称
using System;using System.IO; namespace ConsoleApp5{ class Program { /* C# 获取当前目录、当前路径、文件全路径、目录、扩展名、文件名称 */ static void Main(string[] args) { //1.获取模块的完整路径。 string path1 = Sy转载 2020-06-28 13:55:13 · 1693 阅读 · 0 评论 -
C# 路径中获取文件全路径、目录、扩展名、文件名称
//获取当前运行程序的目录Application.StartupPath;Environment.CurrentDirectory;//一个文件目录string filePath = “C:\JiYF\BenXH\BenXHCMS.xml”;System.IO.Path.GetFullPath(filePath); //–>C:\JiYF\BenXH\BenXHCMS.xmlSystem.IO.Path.GetDi转载 2020-06-24 11:05:37 · 2346 阅读 · 0 评论 -
C#关于JArray和JObject封装JSON对象
1、JObject:基本的json对象 /// <summary> /// Gets the j object. /// </summary> /// <returns><...转载 2020-06-24 10:51:14 · 3740 阅读 · 1 评论 -
无法确定表达式的类型,因为和int之间没有隐式转换
遇到过好多次的问题了,因为一直忙着码代码,所以没时间去彻底的研究这个问题。今天实在烦了,就想想了这个问题下面是代码。首先是一个实体类,有个 WinningType 字段类型是 int? 的可为空类型 public class Capital { /// <summary> /// key /// </summary> public int SeqId { get; set; } //.转载 2020-06-24 10:47:16 · 473 阅读 · 0 评论 -
[C#]获取指定文件夹下的所有文件名(递归)
//定义一个list集合List list = new List();public void director(string dirs) { //绑定到指定的文件夹目录 DirectoryInfo dir = new DirectoryInfo(dirs); //检索表示当前目录的文件和子目录 FileSystemInfo[] fsinfos = dir.GetFileSystemInfos(); //遍历检索的文件和子目录 foreach (File转载 2020-06-24 10:39:23 · 2352 阅读 · 3 评论 -
JObject
通过JObject和JArray创建JSON对象我们先用非常简单的方法来动态创建一些JSON,可通过JToken派生的JSON.NET对象来进行,最常见的JToken派生的类是JObject和JArray。正是因为JToken实现了IDynamicMetaProvider动态语言接口,所以可以使用dynamic关键字直观地创建动态对...转载 2020-06-24 10:30:03 · 1107 阅读 · 0 评论 -
C# 如何从控制台读取输入和输出
// Console 是 namespace System 的一个类 string str = Console.ReadLine(); // 读入一行字符串,去掉其中的读入的换行符int a = Console.Read(); // 读入下一个输入,按下回车后响应,回车输入的字符也进入缓存区但本次不会读入// VS 命令行下,一次回车会输入\r\n两个字符,满足两次Read()...转载 2020-06-24 10:19:56 · 3348 阅读 · 0 评论 -
js中自定义对象、json对象、json字符串、普通js对象 --js学习那本书上的
4.7 自定义对象JS除了内置对象之外,还允许我们程序自己定义属于我们自己的对象,在JS中自定义对象的方式有2种:通过构造器创建对象,通过初始化器创建对象。 4.7.1 构造器创建对象(原生JS对象)构造器,就是一个普通的函数,函数中可以定义0到N个参数,具体的代码如下:/*对象构造器,就是一个普通函数*/ function Student(stuNam...转载 2020-06-24 09:39:21 · 247 阅读 · 0 评论 -
DeriveParameters
public static void DeriveParameters(DbCommand cmd, params object[] values) { AppRuntime.GuardArgument(cmd, "cmd"); AppRuntime.GuardArgument(string.IsNullOrEmpty(cmd.CommandText), "cmd.CommandText"); AppRuntime.Gu转载 2020-06-23 19:30:24 · 173 阅读 · 0 评论 -
ADO教程(执行带参数存储过程)
由于最近项目上要使用ADO访问数据库,而网上又没有非常完整的帖子,干脆摸着石头过河来总结一个ADO的使用;首先不得不说ADO的使用率并不是很高1.ADO是微软提供的访问各种数据库的统一接口,是对底层的COM技术OLE DB的封装;它的主要优点是易于使用,高速度,低内存开销,和一个小磁盘占用,缺点:开发效率相对不高;2.既然ADO是一个面向对象的COM,就涉及到一个ADO的对象;对象图表如下:对象有:Connection:用于建立数据源连接;该对象是安全的;Command:定义一个你打算对.转载 2020-06-23 19:20:52 · 1431 阅读 · 0 评论 -
sqlconnection,sqlcommand,sqldataadapter,sqldatareader,dataset
1 上帝说,要连接数据库,于是就有了sqlconnection (数据库连接,配置连接字符串等,用户名密码之类)2 上帝说,要执行sql语句。于是就有了sqlcommand, 直接翻译成sql命令。每个sqlcommand都有commandtext跟parameters 文本跟参数。填写好这个命令,然后execute去执行。当然,要确保连接是open的才能执行。没连接啥都干不了。3 上帝认为要有办法读取返回结果,于是便有了datareader.可以一条一条的读取(read)直到最后一条。4 上.转载 2020-06-23 13:46:39 · 501 阅读 · 0 评论 -
SqlCommandBuilder的用法
SqlCommandBuilder 用来为 SqlDataAdapter 自动产生SQL语句 ,批量更新DataSet, 不用再为SqlDataAdapter 写好 InsertCommand,DeleteCommand,UpdateCommand等Sql语句.如果对...转载 2020-06-23 09:23:12 · 3403 阅读 · 0 评论 -
C#集合中的Add与AddRange方法
C#.NET的集合主要位于System.Collections和System.Collections.Generic(泛型)这两个namespace中。1、System.Collections比如ArrayList,其Add(继承自接口IList)和AddRange方法可用于想集合中添加元素。代码示例:(1)Add:添加单个元素ArrayList myAL = new ArrayList();myAL.Add( “The” );myAL.Add( “quick” );myAL.Add( “b转载 2020-06-22 16:15:29 · 19061 阅读 · 2 评论 -
.net core 中 DateTime 序列化为json后带字母T问题
个人网站:yedajiang44.com当实体类中的类型为DateTime类型时(如下)//实体class Model{ //... //创建时间 public DateTime CreateTime{get;set;} //...}复制代码再进行json序列化后,前端收到的结果为xxxx-xx-xxT xx:xx:xx 如:2018-11-03T15:20:20原因是core版本中的Newto...转载 2020-06-21 16:59:02 · 1189 阅读 · 0 评论 -
关于JObject的用法,以及实现动态生成实体对象、动态创建一些Josn组合
通过JObject和JArray创建JSON对象我们先用非常简单的方法来动态创建一些JSON,可通过JToken派生的JSON.NET对象来进行,最常见的JToken派生的类是JObject和JArray。正是因为JToken实现了IDynamicMetaProvider动态语言接口,所以可以使用dynamic关键字直观地创建动态对象,并把这个动态对象序列化为JSON字符串。 我们通过JArray和JObject来创建一个示例:[TestMethod]public void JObjectOutpu转载 2020-06-20 14:17:37 · 939 阅读 · 0 评论 -
C# 获取一个文件夹下的所有文件
public static List<string> m_fileList = new List<string>(); public static int GetDirectory(string srcPath) { try { DirectoryInfo dir = new DirectoryInfo(srcPath); FileS.转载 2020-06-20 13:28:32 · 1117 阅读 · 0 评论 -
asp.net-mvc – 将JSON.NET JObject转换为JsonResult的异常,
我有一个JSON.NET JObject,数据结构如下: { "foo" : { "bar": "baz" }} 我正在尝试将其转换为ASP.NET MVC JsonResult,如下所示: JObject someData = ...;JsonResult jsonResult = Json(someData, "application/json", JsonRequestBehavior.AllowGet); ...原创 2020-06-19 20:01:56 · 996 阅读 · 0 评论 -
vs 2019 常规里面 没有 一般处理程序
选择添加的位置不对,比如在 库,文件夹下右键添加是没有这个选项的,在web工程下右键添加就会有了原创 2020-06-18 09:47:14 · 2046 阅读 · 0 评论 -
FluentFTP,根据验证过程,远程证书无效;No such file or directory
client.EncryptionMode = FtpEncryptionMode.Explicit;//ssl链接错误client.ValidateCertificate += new FtpSslValidation(OnValidateCertificate);//证书验证void OnValidateCertificate(FtpClient control, FtpSslValidationEventArgs e){ //在这里添加逻辑以测试证书是否有效 e.Accept =原创 2020-06-17 09:03:50 · 1463 阅读 · 0 评论 -
MySQL无限极分类数据表的设计
无限级分类表设计 实际上我们在开发过程中,就拿商品类别来说,它还可以有更多的延伸,我们先来举一个简单的例子,比如图书,他的下面还可以分小说、文学等,在小说下面还可以分为言情小说、科幻小说等,还可以再往下一级一级继续分,那么这种分类就属于无限极分类,那么无...转载 2020-06-12 10:10:55 · 1063 阅读 · 0 评论 -
转【MySQL】-无限级分类表设计与查询
What举个简单的例子,我们设计购物商城之类的网站的时候一般商品都会有一级分类二级分类甚至三级分类或者再细分,如果按照传统思维我们可能会为每个级别的类别设置一张分类表然后再用外键去关联,虽然这样保证了没有冗余,但是我们完全没有必要设置这么多表,更何况商品类可以是无限细分的,我们不能因此而创建无数张表,最最重要的是这样多表连接查询时候会造成效率低下的问题,不利于性能的提升。这个时候我们如何只设置一张类别表而且保证没有冗余呢?接下来揭开无限极分类表设计的面纱。How?至少包含三个字段,自身id,自身名转载 2020-06-12 10:05:07 · 329 阅读 · 0 评论 -
Entity Framework6,ef6,T4模板,"命名空间不能直接包含字段或方法之类的成员",未能找到类型或命名空间名称“TypeMapper”
从ef6模型tt中拷贝代码到自建tt中,出现上述错误解决方法在命名空间外加下面函数<#+ public static void ArgumentNotNull<T>(T arg, string name) where T : class{ if (arg == null) { throw new ArgumentNullException...原创 2020-03-08 16:31:15 · 696 阅读 · 0 评论 -
字段初始值设定项无法引用非静态字段、方法或属性“"
.net 提示错误如上,原因是在类的属性中把继承了某个接口的对象赋值给了此接口解决方法 在属性的get方法或函数体内进行赋值原创 2020-02-29 11:37:46 · 3136 阅读 · 0 评论