.NET周刊【8月第2期 2023-08-14】

NET · 浏览次数 : 700

小编点评

# .NET泛型 **.NET泛型介绍** 泛型是.NET泛型的一个重要概念,它可以让我们在编写代码时泛型类型参数,从而使代码更具泛型性。 **泛型类型** 泛型类型是一种可以泛型类型参数的类型。泛型类型可以泛型到多种类型,例如: * **值类型**: int、bool、double、char * **枚举类型**: enum * **结构体类型**: struct * **委托**: delegate * **数组**: array **.NET泛型使用** .NET泛型可以使用多种方式使用泛型类型参数,例如: * **泛型函数**: func,其中 T泛型类型参数 * **泛型接口**: interface,其中 T泛型类型参数 * **泛型类**: class,其中 T泛型类型参数 * **泛型委托**: delegate,其中 T泛型类型参数 * **泛型数组**: array,其中 T泛型类型参数 **.NET泛型优缺点** **优点**: * 可泛型 * 提高代码可维护性 * 避免重复代码 **缺点**: *泛型类型可能无法泛型到所有类型 *泛型类型可能导致代码难以理解 **.NET泛型示例** ```csharp //值类型泛型 func add(int a, int b) int { return a + b; } //枚举类型泛型 enum color { red, blue, green } func color(color c) color { return c; } //结构体类型泛型 struct Point { x, y } func Point(Point p) Point { return p; } //委托泛型 delegate int AddDelegate(int a, int b); func add(AddDelegate d, int a, int b) int { return d(a, b); } //数组泛型 int[] arr = { 1, 2, 3 }; func arr[int] { return arr[int]; } //泛型接口 interface IPoint { x, y } func Point(IPoint p) IPoint { return p; } ``` **.NET泛型总结** .NET泛型是一个非常重要的概念,它可以让我们在编写代码时泛型类型参数,从而使代码更具泛型性。 **.NET泛型使用** .NET泛型可以使用多种方式使用泛型类型参数,例如: * **泛型函数**: func,其中 T泛型类型参数 * **泛型接口**: interface,其中 T泛型类型参数 * **泛型类**: class,其中 T泛型类型参数 * **泛型委托**: delegate,其中 T泛型类型参数 * **泛型数组**: array,其中 T泛型类型参数

正文

本周由于Myuki大佬感染新冠,国际板块暂停更新一周,将在下周补齐,所以本周只有国内板块。

国内文章

解决 Blazor 中因标签换行导致的行内元素空隙问题

https://www.cnblogs.com/ElderJames/p/resolves-width-issues-in-blazor-caused-by-element-wrapping.html

实践过不同前端框架的朋友应该都知道,对于同一个样式,在不同框架上的表现都会有不同,时时需要做“适配”,在 Blazor 上也不例外。在做 Ant Design Blazor 时就深有体会,因为我们是同步官方的样式,他们的样式只考虑了React 上的实现,除非有人专门提 PR,否则都不会特别考虑其他框架的实现。本文就介绍一个典型问题。

使用 C# 进行AI工程开发-基础篇(五):文件数据库与向量数据库

https://zhuanlan.zhihu.com/p/649763690

数据库是数据存储和管理的重要基础设施,这里介绍下关系数据库之外的一些数据库,了解与掌握这些数据库,有助于人工智能应用的开发。本节主要介绍三个数据库:

LiteDB:纯 C# 实现的、简单易用的嵌入式数据库,快速开发的利器。当数据量不大的时候,直接使用 litedb,简单粗暴。

RocksDB:经过业界检验的 kv 数据库,也是很多新生代数据库的存储引擎。当数据量很大的时候,可以考虑使用 RocksDB。

milvus:开源的向量数据库,支持经典的向量索引,主要用于向量相似度检索。

使用 C# 进行AI工程开发-基础篇(六):小结

https://zhuanlan.zhihu.com/p/649766306

前面这些,是我实战总结的一套 AI 开发架构。来一个简单的小结:

  • 推理层:直接调用各个inference库,零代码;

  • 引擎层:采用 csharp 开发,通过 NativeAOT 编译为各个平台的动态链接库,暴露 common api 接口;

  • SDK:基于 common api 接口,进行各种语言的封装;

  • Api Server:采用 http://asp.net,通过 SDK 调用引擎,对外提供 Web API

    • 提供 swagger ui 界面
    • 通过 blazor server 提供更友好的操作界面
  • Web 应用开发:

    • 通过 SDK 或 Api Server,集成 AI 功能
    • 提供 web api 和 swagger ui 界面
    • 通过 blazor server 提供更友好的操作界面
  • 数据存储:采用 LiteDB/RocksDB/milvus

  • 轻量全栈(Web/桌面/移动)开发:Blazor Hybrid

  • 桌面/移动开发: Avalonia

  • 小工具/教学:dotnet script/polyglot

不写cpp代码,不写 sql 不搞 orm,写少量的 js,靠 dotnet 实现了全栈 AI 应用开发。轻量全栈和桌面/移动开发还待验证,其它皆已在实际项目/产品中使用。

解读 - Span

https://www.cnblogs.com/pandefu/p/17536259.html

Span<T> 是C# 中的一种结构体,它是一种内存安全的类型,可以用来表示连续的内存区域。Span<T> 可以被用于访问和操作数组、堆上分配的内存和栈上分配的内存。使用 Span<T> 可以避免不必要的内存拷贝,从而提高性能。

C#如何使用WASM跨语言调用?

https://www.cnblogs.com/hejiale010426/p/17613121.html

WebAssembly(简称Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。Wasm被设计为编程语言的可移植编译目标,支持在web上部署客户端和服务器应用程序。

CAP 7.2 版本发布通告

https://www.cnblogs.com/savorboard/p/cap-7-2.html

今天,我们很高兴宣布 CAP 发布 7.2 版本正式版,我们在这个版本中主要致力于 Dashboard 对 k8s 服务发现的支持。

从 7.1 版本以来,我们发布了4个小版本,在这些版本中我们主要解决发现的Bug和添加一些小功能,这篇文章中可能也会提及我们在这些小版本中加的一些小功能。

下面,具体看一下我们新版本的功能吧。

记一次 .NET某报关系统 非托管泄露分析

https://www.cnblogs.com/huangxincheng/p/17614463.html

前段时间有位朋友找到我,说他的程序内存会出现暴涨,让我看下是怎么事情?而且还告诉我是在 Linux 环境下,说实话在Linux上分析.NET程序难度会很大,难度大的原因在于Linux上的各种开源工具主要是针对 C/C++, 和 .NET 一毛钱关系都没有,说到底微软在 Linux 上的调试领域支持度还远远不够。

虽然知道分析起来难度可能会很大,但该分析还是要分析的,让朋友抓一个 dump 过来,上 WinDbg 说话。

C# 中关于 T 泛型【C# 基础】

https://www.cnblogs.com/hnzhengfy/p/CST.html

C# 里面的泛型不仅可以使用泛型函数、泛型接口,也可以使用泛型类、泛型委托等等。在使用泛型的时候,它们会自行检测你传入参数的类型,因此它可以为我们省去大量的时间,不用一个个编写方法的重载。与此同时,使用泛型会提升程序的效率。

本文将围绕泛型的各个方面,详细看下泛型到底怎么用,会给每位开发者带来什么便利。

.NET 8 发布的最后一个预览版Preview 7, 下个月发布RC

https://www.cnblogs.com/shanyou/p/17615851.html

微软在2023年8月9日 发布了.NET 8 Preview 7[1],这是它在11月14日 RTM 之前进入发布候选阶段之前的最后预览版。 该预览版也于也与 VS 2022 v17.7 版本一起发布。对于预览版7,System.Text.Json 和 codegen 在此版本中具有最大的变化。所有这些特定项目都属于 .NET 网站主题[2]中提供的一般指导。

Json 基于类 Newtonsoft.Json.Linq.JToken 的应用简介【C# 基础】

https://www.cnblogs.com/hnzhengfy/p/JObjectJArray.html

在日常开发中,对于 Json 的使用还是比较频繁的,特别是 Json 对象和字符串或者实体对象之间的转换。

虽然几乎天天用,但是总是感觉没那么明了,今天结合微软的 Newtonsoft.Json.Linq 类,试着详解一下,把相关的内容列一下。

.NET Core多线程 (4) 锁机制

https://www.cnblogs.com/edisonchou/p/dotnet_multithread_learning_notes_chap4.html

去年换工作时系统复习了一下.NET Core多线程相关专题,学习了一线码农老哥的《.NET 5多线程编程实战》课程,我将复习的知识进行了总结形成本专题。

本篇,我们来复习一下.NET中锁机制的相关知识点,预计阅读时间10分钟。

.NET对象的内存布局

https://www.cnblogs.com/yyfh/p/17621881.html

在.NET中,理解对象的内存布局是非常重要的,这将帮助我们更好地理解.NET的运行机制和优化代码,本文将介绍.NET中的对象内存布局。
.NET中的数据类型主要分为两类,值类型和引用类型。值类型包括了基本类型(如int、bool、double、char等)、枚举类型(enum)、结构体类型(struct),它们直接存储值。引用类型则包括了类(class)、接口(interface)、委托(delegate)、数组(array)等,它们存储的是值的引用(数据在内存中的地址)。

本周由于Myuki大佬感染新冠,国际板块暂停更新一周,将在下周补齐,所以本周只有国内板块。

版权声明

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。

格式如下:

  • 10~50字左右的标题
  • 对应文章或项目网址访问链接
  • 200字以内的简介,如果太长会影响阅读体验

https://github.com/InCerryGit/.NET-Weekly

.NET性能优化交流群

相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:

  • 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具
  • .NET框架底层原理的实现,如垃圾回收器、JIT等等
  • 如何编写高性能的.NET代码,哪些地方存在性能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。

如果提示已经达到200人,可以加我微信,我拉你进群: lishi-wk

另外也创建了QQ群,群号: 687779078,欢迎大家加入。

抽奖送书活动预热!!!

感谢大家对我公众号的支持与陪伴!为庆祝公众号一周年,抽奖送出一些书籍,请大家关注公众号后续推文!

image-20230703203249615

与.NET周刊【8月第2期 2023-08-14】相似的内容:

.NET周刊【8月第2期 2023-08-14】

本周由于Myuki大佬感染新冠,国际板块暂停更新一周,将在下周补齐,所以本周只有国内板块。 ## 国内文章 ### 解决 Blazor 中因标签换行导致的行内元素空隙问题 https://www.cnblogs.com/ElderJames/p/resolves-width-issues-in-bl

.NET周刊【9月第3期 2023-09-17】

国内文章 在.NET 8 RC1 版本中 MAUI、ASP.NET Core 和 EF8 的新特性 https://www.cnblogs.com/shanyou/p/17698428.html 从年初2 月份发布第一个预览版,经历7个预览版后,Microsoft 西雅图时间9月13日发布了 .NE

.NET周刊【8月第1期 2023-08-06】

## 国内文章 ### NativeBuferring,一种零分配的数据类型(上篇) https://www.cnblogs.com/artech/p/17586781.html 之前一个项目涉及到针对海量(千万级)实时变化数据的计算,由于对性能要求非常高,我们不得不将参与计算的数据存放到内存中,并

.NET周刊【8月第3期 2023-08-20】

## 国内主题 ### 抓的是周树人,与我鲁迅有什么关系? https://www.cnblogs.com/JulianHuang/p/17642511.html - **问题**:作者看到了一个关于Dictionary.Clear和new Dictionary的问题,想要探究为什么在foreach

.NET周刊【8月第4期 2023-08-27】

## 国内文章 ### AgileConfig-1.7.0 发布,支持 SSO 🎉🎉🎉 https://www.cnblogs.com/kklldog/p/agileconfig-170.html AgileConfig 已经好久好久没有更新过比较大的功能了。一是 AgileConfig 本身

.NET周刊【7月第1期 2024-07-07】

国内文章 学习.NET 8 MiniApis入门 https://www.cnblogs.com/hejiale010426/p/18280441 MiniApis是ASP.NET Core中的轻量级框架,用最少的代码和配置创建HTTP API。其特点包括简洁明了、性能卓越、灵活多变、易于学习使用,

.NET周刊【9月第4期 2023-09-24】

国内文章 有趣的“可扩展近似计数”算法 https://zhuanlan.zhihu.com/p/656817283 在编程的世界里看见数学的身影,会让我充满好奇和兴奋。这不,在一年一度介绍.NET新版本的官方开发博客《Performance Improvements in .NET 8》中,我看到

.NET周报【1月第3期 2023-01-20】

这应该是2023年农历新年前的最后一篇.NET周报,再次预祝大家新年快乐! 国内文章 看我是如何用C#编写一个小于8KB的贪吃蛇游戏的 https://www.cnblogs.com/InCerry/p/building-a-self-contained-game-in-c-under-8-kilo

瀚高4.5.8的安装部署过程

瀚高4.5.8的安装部署过程 说明 大周末的写文档. 主要是备忘,之前写的太乱了. 本来想自己写一份, 但是怀疑找到了瀚高工程师的文档 准备直接学习一下: https://blog.csdn.net/qiuchenjun/article/details/125985256 感谢原作者 安装 rpm

.NET周刊【10月第1期 2023-10-01】

国内文章 .NET应用如何防止被反编译 https://www.cnblogs.com/Can-daydayup/p/17736700.html 本文主要讲述了如何防止.NET应用被反编译。虽然无法完全防止反编译,但可以通过混淆代码、加密敏感数据、动态生成代码、使用代码混合技术和代码签名等方法增加反