泛型-编程思维
简介 C# 中的泛型是一种强大的特性,允许你编写可重用的代码,而不必为不同的数据类型编写多个版本。通过泛型,你可以创建类、方法和接口,以便它们可以在编译时指定具体的数据类型。这使得代码更加灵活、类型安全,并且可以提高性能。 案例 泛型允许我们编写代码时指定类型参数,以便在运行时使用不同的实际类型。假设我们有一个简单的需求:实现一个数组的查找最大值功能。我们可以比较使用泛型前后的实现 不使用泛型
morethink program
文章信息 标题:使用C#和MemoryCache组件实现轮流调用API Key以提高并发能力的技巧 摘要:本文介绍了如何利用C#语言中的MemoryCache组件,结合并发编程技巧,实现轮流调用多个API Key以提高系统的并发能力。通过示例代码和详细说明,读者将了解如何有效地管理API Key的调用次数限制,并优化系统性能。 Title: Techniques for Using C# and
前言 浅拷贝(shallow copy)和深拷贝(deep copy)是在编程中经常遇到的概念,尤其在处理数据结构时很重要。它们是针对对象(object)或数据结构(data structure)进行复制操作时的两种不同方式。 浅拷贝和深拷贝是在编程中常见的两种拷贝对象的方式,它们在拷贝对象时的行为和效果有所不同。 浅拷贝(Shallow Copy) 浅拷贝创建一个新对象,并将原始对象的字段
前言 在计算机编程中,同步与异步、进程与线程是两组基本概念,对于理解并发编程至关重要。本文将深入探讨这些概念,解析它们的含义、特点以及在实际编程中的应用。 进程和线程 进程(Process)和线程(Thread)是计算机科学中重要的概念,它们都与程序执行和并发相关。 进程: 定义:进程是操作系统中的一个独立实体,是程序执行的一个实例。一个进程可以包含多个线程。 内存空间:每个进程都有独立的内
C# C#(C Sharp)是一种由微软公司开发的通用、面向对象的编程语言,它被设计用来构建.NET平台上的各种应用程序。.NET是一个软件开发框架,它提供了一系列工具和库,使开发人员能够构建各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序和服务等。 C#是.NET框架中最常用的编程语言之一,但并不是唯一的选择。除了C#之外,开发人员还可以使用其他语言,如Visual Basi
.NET Core WebAPI项目部署iis后Swagger 404问题解决 前言 之前做了一个WebAPI的项目,我在文章中写到的是Docker方式部署,然后考虑到很多初学者用的是iis,下面讲解下iis如何部署WebAPI项目。 环境准备 iis ASPNETCoreModuleV2 重点 .NET Core Runtime iis的配置这里就不讲了,主要讲解.NET Core项目部署
已知在OpenXml有以下几种超链接 功能 说明 跳转页面 跳转某一页:ppaction://hlinksldjump跳转第一页:ppaction://hlinkshowjump?jump=firstslide跳转最后一页:ppaction://hlinkshowjump?jump=lastslide跳转下一页:ppaction://hlinkshowjump?jump=nexts
More descriptive way to declare and use a method in programming languages At present, in most programming language, a method is declared in few parts: keyword, method name, method parameters and retu
$p = "F:\book\Other\传统文化\书法\吴让之篆书吴均帖\Images" Set-Location $p $str = "风烟俱净天山共色从流飘荡任意东西自富阳至桐庐一百许里奇山异水天下独绝水皆缥碧千丈见底游鱼细石直视无碍急湍甚箭猛浪若奔夹岸高山皆生寒树负势竞上互相轩邈争高直指千百成峰泉水激石泠泠作响好鸟相鸣嘤嘤成韵蝉则千转不穷猿则百叫无绝鸢飞戾天者望峰息心经纶世务者窥谷忘反横柯
背景 之前在.NET 性能优化群内交流时,我们发现很多朋友对于高性能网络框架有需求,需要创建自己的消息服务器、游戏服务器或者物联网网关。但是大多数小伙伴只知道 DotNetty,虽然 DotNetty 是一个非常优秀的网络框架,广泛应用于各种网络服务器中,不过因为各种原因它已经不再有新的特性支持和更新,很多小伙伴都在寻找替代品。 这一切都不用担心,在.NET Core 以后的时代,我们有了更快、
写在前面 前几时在写业务代码的时候,看到有用到lock这个方法的,而我竟然并不知道是做什么用的,所以查找了许多博客文章,弄懂了百分之七八十,在此做下笔记。 感谢博客 http://www.cnblogs.com/wolf-sun/p/4209521.html 的解说,该篇博客大部分内容源自于此。 lock 官方MSDN的说法: lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会
写在前面 看《CLR via C#》第四章时,看到了类型对象指针和同步块索引这两个概念,不知如何解释,查看过相关资料之后,在此记录。 类型对象指针 《CLR via C#》中的原话: 任何时候在堆上创建对象,CLR都自动初始化内部的“类型对象指针”成员来引用 与对象对应的类型对象。 在JIT编译器将IL代码转换成本机CPU指令的时候,利用程序集的元数据,CLR提取与代码中类型有关的信息,创建一
学习一项新知识的时候,最好的方法就是去实践它。 前言 《CLR via C#》这本神书真的是太有意思了!好的我的前言就是这个。 Fun 如果要用有输入参数,有返回值的委托,那么Func委托将满足你的要求。 Func泛型委托引用了一个带有一个返回值的方法,它可以传递0或者多到16个参数类型,和一个返回类型。 它可以没有传递参数,但是一定要有返回类型。 Func<out TResu
前言 StarBlog 第一期规划的功能基本完成了,我想着在春节前应该可以把第一期的系列文章完结掉,那么在差缺补漏阶段就剩下开发项目的最后一个环节——部署了。 PS: 事实上,还有一个很重要但又经常被略过的测试环节我们没有提到,因为时间关系,第一期规划我没有写单元测试和集成测试,在开发中,测试环节是必备的,我也立个flag会在之后补充这部分测试的代码。 关于 dotnet 的测试,可以看看我之
SignalR牛刀小试 在MVP杨老师的博客里看到这么个东西,我还以为是NetCore3才推出的新玩意,原来是已经有很多年的历史了,那看来还是比较成熟的一个技术了。 简介 SignalR是一个.NET Core/.NET Framework的开源实时框架,SignalR的可使用Web Socket, Server Sent Events 和 Long Polling作为底层传输方式。 Sign
看过几篇说协变与逆变的博客,虽然都是正确无误的,但是感觉都没有说得清晰明了,没有切中要害。那么我也试着从我的理解角度来谈一谈协变与逆变吧。 什么是协变与逆变 MSDN的解释:https://msdn.microsoft.com/zh-cn/library/dd799517.aspx 协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型,后者指能够使用比原始指