- 2024-11-18为什么需要[EnumeratorCancellation]?
为什么需要[EnumeratorCancellation]?在使用C#编写异步迭代器时,您可能会遇到如下警告:warningCS8425:异步迭代器“TestConversationService.ChatStreamed(IReadOnlyList<ChatMessage>,ChatCompletionOptions,CancellationToken)”具有一个或多个类型为"CancellationToken"
- 2024-11-17C#中的方法
C#方法定义方法是包含一系列语句的代码块。方法必须在类或结构中声明。好的编程习惯是方法仅执行一项特定任务。方法为程序带来了模块化。正确使用方法具有以下优点:减少代码重复将复杂的问题分解成更简单的部分提高代码的清晰度重用代码信息隐藏C#方法特征方法的基本
- 2024-11-16C# The file is too long. This operation is currently limited to supporting files less than 2 gigaby
namespaceConsoleApp4{internalclassProgram{staticvoidMain(string[]args){stringbigFile=@"C:\Users\fred\Downloads\ebook-master.zip";ReadBigFile(bigFile);}
- 2024-11-15真的被Sqlsugar给气到了!
博客园潜水多年,账号都搞忘记好几个,一直没有写什么东西,但是这次真忍不了了,被sqlsugar出现的奇葩问题和作者的奇葩处理方式给气到了。起因是在使用Sqlsugar过程中,偶然发现了一个问题,确认这个问题真实存在后,我就去提了issue:模糊查询遭遇特殊符号时的问题·Issue#1303·DotNetN
- 2024-11-14在网页上调起本机C#程序
前言最近开始整理笔记里的库存草稿,本文是23年5月创建的了(因为中途转移到onedrive,可能还不止)网页调起电脑程序是经常用到的场景,比如百度网盘下载,加入QQ群之类的我之前做了个管理电影的项目部署在NAS上自己用,就需要实现在网页上一键调用电脑上的Potplayer播放电影,这时
- 2024-11-14C#学习 操作符(20)
1.运算操作符intm=0,j=1;序号操作符作用举例1+加m=m+j;//结果:12-减m=m-j;//结果:-13*乘m=m*j;//结果:04/除m=m/j;//结果:0
- 2024-11-13C#学习 类型转换 (18)
概念将一种类型转为另一种,例如int转为string;分类隐式转换:自动完成例如:char->int->long->float->double显式转换:手动完成例如:double->float->long->int->char代码//隐式转换intm1=0;doubled1=m1;Console.Writ
- 2024-11-12C# 字典应用
usingSystem;usingSystem.Collections.Generic; classProgram{ staticvoidMain() { //创建一个字典,键是字符串类型,值是整数类型 Dictionary<string,int>studentScores=newDictionary<string,int>(); //
- 2024-11-114-5-1.C# 数据容器 - Stack(Stack 的定义、Stack 元素的基本操作、Stack 元素的遍历、Stack 的常用方法、Stack 注意事项)
Stack概述Stack<T>遵循后进先出的规则存储元素Stack<T>支持泛型,可以指定存储的元素的类型Stack<T>不是线程安全的,在多线程环境中需要谨慎使用一、Stack的定义定义StackStack<int>nums=newStack<int>();定义Stack并填充一些元素Stack<int>nums
- 2024-11-114-4-1.C# 数据容器 - Queue(Queue 的定义、Queue 元素的基本操作、Queue 元素的遍历、Queue 的常用方法、Queue 注意事项)
Queue概述Queue<T>遵循先进先出的规则存储元素Queue<T>支持泛型,可以指定存储的元素的类型Queue<T>不是线程安全的,在多线程环境中需要谨慎使用一、Queue的定义定义QueueQueue<int>nums=newQueue<int>();定义Queue并填充一些元素Queue<int>nums=
- 2024-11-114-3-1.C# 数据容器 - Dictionary(Dictionary 的定义、Dictionary 元素的基本操作、Dictionary 元素的遍历、Dictionary 的常用方法)
Dictionary概述Dictionary<TKey,TValue>存储的是键值对(Key-Value),通过键(Key)来存储或修改值(Value)Dictionary<TKey,TValue>存储的键值对是无序的Dictionary<TKey,TValue>存储的键是不可重复的Dictionary<TKey,TValue>支持泛型,可以指定存储的键值对的类型D
- 2024-11-11线性规划-JobShopSchedulingLP
usingSystem;usingGoogle.OrTools.LinearSolver;namespaceJobShopScheduingProblem{///<summary>///线性规划(LinearProgramming)///</summary>publicclassJobShopSchedulingLP{publicstaticvoidSolve()
- 2024-11-104-2-2.C# 数据容器 - HashSet 扩展(HashSet 集合操作、HashSet 存储对象的特性、HashSet 与数组的转换、HashSet 存储元素特性)
HashSet概述HashSet<T>存储的元素是无序的HashSet<T>存储的元素是不可重复的HashSet<T>支持泛型,可以指定存储的元素的类型HashSet<T>不支持索引,不可以通过索引获取或修改元素HashSet<T>不是线程安全的,在多线程环境中需要谨慎使用一、HashSet集合操作1
- 2024-11-104-2-2.C# 数据容器 - HashSet(HashSet 的定义、HashSet 元素的基本操作、HashSet 元素的遍历、HashSet 的常用方法)
HashSet概述HashSet<T>存储的元素是无序的HashSet<T>存储的元素是不可重复的HashSet<T>支持泛型,可以指定存储的元素的类型HashSet<T>不支持索引,不可以通过索引获取或修改元素HashSet<T>不是线程安全的,在多线程环境中需要谨慎使用一、HashSet的定义定义
- 2024-11-05list拷贝踩坑记录
最近做项目中,有一个场景需要复制list给其他对象的属性赋值,然后再去根据对象的其他属性操作list的元素数据,其实就是一个list的拷贝问题代码还原一个list集合,元素类型为class,复制一下list,但是list里面元素还是指向原来的对象internalclassProgram{staticvoidMain(str
- 2024-11-04浅析 C# 控制台的 Ctrl+C 是怎么玩的
一:背景1.讲故事上一篇我们聊到了Console为什么会卡死,读过那篇文章的朋友相信对conhost.exe有了一个大概的了解,这一篇更进一步聊一聊窗口的特殊事件 Ctrl+C 底层流转到底是什么样的,为了方便讲述,让chagtgpt给我生成一段Ctrl+C的业务代码。classProgram{
- 2024-11-01Asp.net 使用FluentScheduler
1.安装包:Install-PackageFluentScheduler2. Global.asax添加JobManager.Initialize(newMyRegister());3.添加类 publicclassMyRegister:Registry{publicMyRegister(){//ScheduleanIJobtorunataninte
- 2024-10-30C#学习 [类型系统] 命名空间(12)
作用1.组织类System.Console.WriteLine("HelloWorld!");System是一个命名空间,Console是该命名空间中的一个类。可使用using关键字,这样就不必使用完整的名称。usingSystem;Console.WriteLine("HelloWorld!");控制类和方法名称的范围namespaceSampleNamespace;
- 2024-10-29c# 值类型
目录1、c#类型2、值类型2.1结构体2.2枚举1、c#类型类型(Type)又叫数据类型(DataType)。Adatatypeisahomogeneouscollectionofvalues,effectivelyprensented,equippedwithasetofoperationswhichmanipulatethesevalues.数据类型是由相同类型的值
- 2024-10-29C#05-设计模式学习笔记
@目录1.设计模式的七大原则1.单一职责原则2.迪米特法则3.里氏代换原则4.依赖倒置原则5.接口隔离原则6.开闭原则7.合成复用原则8.总结2.创建型模式1.单例模式2.工厂方法模式1.简单工厂模式2.工厂模式3.抽象工厂模式4.生成器模式5.原型模式3.结构型设计模式1.适配器模式行为型设计模
- 2024-10-29C#02-c#学习笔记
@目录1.语句块2.Write和WriteLine的区别:3.params4.托管代码和非托管代码5.DllImport的使用:6.WriteLine、ReadLine和ReadKey:7.C#中访问修饰符8.类型的实例化9.成员可以分为两种:数据成员和函数成员10.枚举enum和结构struct的区别:11.运行中的程序使用栈和堆来存储数据12.栈存储几种类
- 2024-10-28C# SuperSocket 基础七【CountSpliterReceiveFilte-固定数量分隔符协议】不使用COMMAND
publicclassCountSpliterReceiveFilterSession:AppSession<CountSpliterReceiveFilterSession>{publicoverridevoidSend(stringmessage){Console.WriteLine("发送消息:"+message);base.Send(message)
- 2024-10-28C# SuperSocket 基础六【CountSpliterReceiveFilte-固定数量分隔符协议】使用COMMAND
publicclassCountSpliterReceiveFilterSession:AppSession<CountSpliterReceiveFilterSession>{publicoverridevoidSend(stringmessage){Console.WriteLine("发送消息:"+message);base.Send(message)