零基础如何自学C#?
前言
本文来源于知乎的一个提问,提问的是一个大一软件工程专业的学生,他想要自学C#但是不知道该怎么去学,这让他感到很迷茫,希望有人能给他一些建议和提供一些学习方向。
个人建议
确认目标:自学C#首先你需要大概了解该门语言的发展、前景和基本特点,从自身实际情况和方向出发确认学习的必要 ...
C# 9.0 新特性预览 - 类型推导的 new
C# 9.0 新特性预览 - 类型推导的 new
前言
随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它们。
目录
[C# 9.0 新特性预览 - 类型推导的 new][C# 9.0 新特性预览 - 空参数校验][C# 9.0 新特性预览 - Lambda 中的弃元][C# 9.0 新 ...
【.NET C#基础】协变、逆变与不变
【.NET C#基础】协变、逆变与不变
文章目的:介绍变体的概念(包括协变、逆变与不变),并介绍其在C#中的意义以及使用
阅读基础要求:了解C#进阶语言功能的使用(尤其是泛型、委托、接口)
0.目录
【.NET C#基础】协变、逆变与不变
0.目录
1.基本概念
2.从示例入手
3.C#中的变体
4.泛型与变体
4.1.泛型委托
4.2.泛型接口 ...
理解C#中的ConfigureAwait
原文:https://devblogs.microsoft.com/dotnet/configureawait-faq/
作者:Stephen
翻译:xiaoxiaotank
静下心来,你一定会有收获。
七年前(原文发布于2019年).NET的编程语言和框架库添加了async/await语法糖。自那以后,它犹如星火燎原一般,不仅遍及整个.NET生态,还被许许多多的其他语言和框架所借鉴。当然,.NET也 ...
C#实现PDF文档自动化生成的开发实战
目录PDF文档生成基础与环境准备精细化内容布局——文本与图片文本插入与排版图片插入与定位增强视觉表现——形状与表格形状绘制表格创建进阶技巧与最佳实践结语在现代软件应用中,PDF文档因其跨平台、内容固定性强以及易于分享的特性,扮演着不可或缺的角色。从生成报告、发票到电子合同,程序化地创建 ...
C# 使用Dapper与金仓数据库交互的实现步骤
目录1. 安装必要的 NuGet 包2. 基本配置和连接3. 完整的 CRUD 操作示例4. 事务处理5. 连接字符串配置建议注意事项:C# 配合 Dapper 与金仓数据库(KingbaseES)进行交互,可以使用如下方法实现
1. 安装必要的 NuGet 包
Install-Package Dapper
Install-Package Npgsql # 金仓数据库兼容 PostgreSQL 协议
2. 基本配置和连接 ...
C#中协变逆变的实现
目录1. 协变与逆变的概念2. 协变与逆变的作用及作用对象3. 协变与逆变的关键字4. 泛型接口与委托的示例示例1:协变在泛型接口中的体现示例2:逆变在泛型接口中的体现示例3:协变在泛型委托中的体现示例4:逆变在泛型委托中的体现总结1. 协变与逆变的概念
协变(Covariance)允许将子类(派生类)类型作为父类(基类)类型使 ...
C#中预处理器指令的实现示例
目录1. 什么是编译器?2. 什么是预处理器指令?3. C# 中常见的预处理器指令(1)#define和#undef(2) 条件编译指令(#if,#elif,#else,#endif)(3)#warning和#error(4)#line(不太重要)(5)#pragma(6)#region和#endregion4、总结1. 什么是编译器?
编译器是一种将高级编程语言代码(如 C#、Java、Python)翻译成计算机可执行代码 ...
C#使用Spire.Barcode for .NET快速生成二维码
目录引言环境准备基础实现:生成简单二维码代码解释进阶功能:自定义二维码样式 (嵌入图片)关键参数说明常见问题与注意事项引言
二维码作为一种高效的信息承载方式,广泛应用于支付、物流、身份验证等场景。在 .NET 开发中,借助 Spire.Barcode for .NET 提供了一个轻量级且功能完整的解决方案,支持生成和读取多种条形码 ...
C#利用Spire.PDF for .NET实现将PDF转换为SVG
目录环境准备PDF 转 SVG 基本示例1. 将整个 PDF 转换为 SVG(默认输出)2. 只转换指定页范围3. 将多页 PDF 合并为一个 SVG 文件4. 高级应用示例:只转换特定页集合转换注意事项总结在现代应用开发中,PDF 是最常用的文档格式之一,因其能够保留排版、字体和图片布局而广受欢迎。然而,当需要将 PDF 内容集成到网页、矢量图 ...
C#实现自动化创建Word可填写表单
目录为什么需要自动化创建Word可填写表单借助.NET库实现Word表单自动化创建实战:C#/VB.NET创建可填写表单的关键步骤步骤1:环境准备与库引用步骤2:创建Word文档并添加表单域步骤3:保存并分发表单扩展:表单数据的读取与处理结语在现代办公环境中,Word文档依然是信息传递和数据收集的重要载体。然而,当我们需要处理大量 ...
C#基于TCP通信协议的实现示例
目录一、前言1. 客户端代码(TCpClient/Program.cs)2. 服务器端代码(TCPServer/Program.cs)二、网络编程核心概念与原理1. 什么是网络编程?2. TCP 网络编程核心原理(1)核心特性(2)三次握手(建立连接)(3)四次挥手(断开连接)三、完整示例代码(可直接运行)1. TCP 客户端完整代码2. TCP 服务器完整代码四、代码 ...
C#中Jobject转string方法实现
目录1. 使用ToString()方法2. 使用ToString(Formatting.None)指定格式3. 使用ToString(Formatting.Indented)美化输出4. 使用JsonConvert.SerializeObject()5. 处理特殊场景从 JSON 字符串创建 JObject 再转回字符串处理包含数组的 JObject6. 性能考虑7. 完整示例在 C# 中,将 JObject 转换为字符串有多种方法。以下是几种常 ...
C#.NET ConcurrentBag<T> 设计原理与使用场景
目录简介核心定位与价值核心特点内部实现原理核心 API核心构造函数核心方法 / 属性常用操作用法示例多线程添加与消费并行处理大量独立小文件对象池实现关键特性与适用场景核心特性最佳适用场景不适用场景最佳实践优先用于生产者-消费者同线程场景避免用于生产者-消费者分离场景总结简介
ConcurrentBag<T> 是 System.Collect ...
WPF中控件样式定义的三种常见方式
目录引言一、方式一:直接在控件上设置属性(内联样式)二、方式二:使用隐式全局样式(无x:Key)三、方式三:使用带键的显式样式(x:Key)四、进阶技巧:样式继承(BasedOn)与基类样式示例:定义基类样式 + 派生样式五、总结对比表六、结语引言
在 Windows Presentation Foundation(WPF)开发中,样式(Style)是实现 UI ...
C#中实现字符串拼接的七种方法
目录引言一、核心前提:理解C#字符串的不可变性二、全量字符串拼接方法详解1. 基础入门:+运算符——最直观的拼接方式代码示例核心特点2. 显式基础:string.Concat()——+运算符的底层实现代码示例核心特点3. 格式化拼接:string.Format()——早期固定模板首选代码示例核心特点4. 优雅升级: ...
C#根据时间加密和防止反编译的两种方案
目录一、C# 时间加密 2 种核心实现(直接用)方案 1:时间戳 + AES 加密(最常用,可逆)方案 2:时间校验加密(不可逆,适合授权验证)二、C# 防反编译(2 个关键步骤,必做)步骤 1:代码混淆(基础防反编译,必加)步骤 2:加壳保护(进阶,防脱壳,工业级)三、关键注意事项(避坑)时间加密 = 用当前时间做密钥 / 校验 ...
C#中实现值相等(Value Equality)的详细步骤
目录一、为什么“值相等”是一个需要认真对待的问题二、相等的两种语义:引用相等 vs 值相等1. 引用相等(Reference Equality)2. 值相等(Value Equality)三、.NET 相等体系的整体结构四、类(引用类型)实现值相等的标准步骤Step 1:明确“相等”的语义(设计阶段)Step 2:实现IEquatable<T>.Equal ...
C#使用Spire.XLS for .NET对Excel的行和列进行分组和取消分组
目录引言安装 Spire.XLS for .NET对行和列进行分组取消行和列分组引言
在 Excel 工作表中,对行或列进行分组可以将数据按项目分类,每一组显示一个项目的相关信息。分组后,你可以选择展开或折叠某些组,只显示最关键的数据。本文将介绍如何在 C# 和 VB.NET 中,使用 Spire.XLS for .NET对 Excel 的行和列进行分组和取消分 ...
使用C#代码在Excel中获取工作表名称的操作指南
目录引言安装 Spire.XLS for .NET在 C# 中获取 Excel 中的所有工作表名称在 C# 中获取 Excel 隐藏工作表名称引言
在 Excel 中,工作表名称可以作为工作簿内容的一种元数据。通过获取这些名称的列表,可以大致了解每个工作表的用途,并概览某类数据存储的位置。这对于较大的工作簿或团队协作尤其有用。本文将介绍如何使用 Sp ...