苏州建设网站公司在什么地方,17网站一起做网店东莞,国外 网页框架搭建的网站,智能建站系统cmsNET 20 周年的学习挑战赛刚结束了第⼀阶段#xff0c;不知道各位⼩伙伴参加了没有#xff1f;有⼈问现在学习 C# 是不是有点过时#xff1f;也有⼈问现在C# 能做什么#xff1f;更有⼈问学习 C# 能否找到⼯作 #xff1f;或者你从不同的专家#xff0c;不同的从业者可以有… NET 20 周年的学习挑战赛刚结束了第⼀阶段不知道各位⼩伙伴参加了没有有⼈问现在学习 C# 是不是有点过时也有⼈问现在C# 能做什么更有⼈问学习 C# 能否找到⼯作 或者你从不同的专家不同的从业者可以有不同的答案。但我更关⼼⼀个⽐较基础⽽且对更多⼈更有帮助的问题—— 如何学习好 C# 。我是⼀名 .NET ⽼兵 虽然我的技术栈不断拓宽但从来没有放弃 C#。希望利⽤该⽂章和⼤家分享⼀些 C# 学习⼼得。学习环境早期学习 C# 相信⼤家都喜欢去 Windows 安装 Visual Studio 或者基于 mono 在 macOS / Linux 下安装MonoDevelop IDE。但 .NET 开源后 学习 C# 就不仅可以在 Windows 还可以在 macOS / Linux 下进⾏学习开发的环境除了 Visual Studio 外还增加了 Visual Studio Code 还有像第三⽅的 JetBrains 的Rider IDE 等 。实际上学习编程语⾔除了这些 IDE 外 我建议⼤家使⽤ REPL 或者 .NET Interactive 来学习C# 更为有效 。*REPL是什么REPL发⾳ “REP-UL”是⼀种编程语⾔与计算机对话的交互式⽅式。早期应⽤在 Python 中 现在很多编程语⾔都⽀持 REPL。实际上 REPL 做了四个步骤Read - 读⼊⽤户的输⼊代码如输⼊的 C# 语句Evaluate - 评估输⼊代码检查语法 / 了解代码意思Print - 打印执⾏结果结果Loop - 继续交互 循环 123 步的⼯作在早期我⽤过最好的 REPL 是Xamarin 的 Workbooks。它不但可以运⾏ C# 的代码也可以写⼀些如Xamarin for iOS , Xamarin for Android , Xamarin Forms 等效果也可以引⼊⼀些第三⽅库实现⼀些效果。这对于初期开发 和跨平台移动应⽤原型开发有很多的帮助 。要在 .NET 使⽤ REPL 你可以使⽤第三⽅的 REPL ⼯具 , 在终端执⾏以下命令dotnet tool install --global dotnet-repl安装成功后在终端下输⼊以下命令就可以进⼊ REPL 环境了dotnet repl进⼊后你可以在⾥⾯输⼊任意代码块来完成运⾏当然你也可以在 REPL 内通过 nuGet 增加相关的第三⽅库/包进⾏测试 , 如 ImageSharp如果你不喜欢⽤命令⾏的⽅式 介绍⼀个官⽅的⼯具 .NET Interactive它是⾮常好⽤的 .NET 体系下的REPL 交互式可视化⼯具。你可以通过在 Visual Studio Code 中安装 .NET Interactive Notebooks插件 。如果你希望了解更详细的安装⽅法以及使⽤可以阅读我之前写的这篇⽂章 .NET Interactive环境介绍Lambda 和 LINQ 是 C# 的语法之美每个语⾔都有各⾃的优缺点和各⾃的应⽤场景传统的类型表示条件 / 循环语句还有类型描述 每个语⾔都有但 C# 我觉得最优雅的地⽅是 Lambda 表达式 和 LINQ。这也是我⾮常推荐⼊⻔的⼩伙伴精读的内容。*Lambda表达式是什么Lambda 表达式是⼀⼩段代码它接受参数并返回⼀个值。Lambda 表达式类似于⽅法但它们不需要名称并且可以直接在⽅法体中实现。C# 在 2.0 的版本上已经⽀持了 Lambda 表达式 ⽐很多编程语⾔都要早。C# 中的 Lambda 表达式与匿名函数⼀样使⽤不同之处在于在 Lambda 表达式中您不需要指定输⼊值的类型因此使⽤起来更加灵活。‘ʼ 是⽤于所有 lambda 表达式的 lambda 运算符。Lambda表达式分为两部分左边是输⼊右边是表达式。表达式 lambda表达式为其主体(input-parameters) expression如下图所示语句 lambda语句块作为其主体(input-parameters) { sequence-of-statements }如下图所示如果您打算在代码中使⽤ LINQ那么 Lambda 表达式将是您最喜欢的伙伴。帮助您将代码逻辑包装在更少的⾏或内联中。LINQ语言LINQ 是⼀系列直接将查询功能集成到 C# 语⾔的技术统称。LINQ 也是在 C# 2.0 中诞⽣ 应⽤在 SQL 数据库、XML ⽂档、以及各种 Web 服务中。借助 LINQ查询成为了最⾼级的语⾔构造就像类、⽅法和事件⼀样。如下图所示我个⼈⽐较喜欢⽤ LINQ to SQL 的语法节约了不少写 T-SQL 语句的时间using (AdventureWorksEntities context new AdventureWorksEntities())
{
IQueryablestring query from p in context.Products
where p.Name Reflector
select p.Name;
IEnumerablebool q query.Select(c c.EndsWith(Reflector ));
Console.WriteLine(LINQ to Entities returns: q.First());
Console.WriteLine(CLR returns: Reflector.EndsWith(Reflector
));
}学会使用 NuGetNuGet 是 .NET 的包管理器。NuGet 客户端⼯具提供了⽣成和使⽤包的能⼒。NuGet 库是所有包作者和使⽤者使⽤的中央包存储库。你可以通过 NuGet 下载很多不同场景的包进⾏场景应⽤ 。像⼀些⼩伙伴在直播提到的爬⾍ 这⾥就可以利⽤ NuGet 通过第三⽅的包 Abot (了解更多请访问https://github.com/sjdirect/abot)来完成。怎么写好C#每⼀个编程语⾔都有⾃⼰的编写规范也是评价好的代码的标准 。在官⽅有⾮常好的编码规则建议⼤家阅读(https://docs.microsoft.com/zh-cn/dotnet/csharp/fundamentals/coding-style/coding-conventions) 这对写好 C# 的代码⾮常有帮助你也可以多看看 GitHub 上的开源项⽬ 也会有很⼤帮助。后记新⼀代的 .NET 很吸引涵盖了多个应⽤场景。C# 作为⾮常重要的 .NET 编程语⾔也是⼤家⼊⻔的必修课。希望⼤家通过该⽂章能掌握好学习 C# 的⼀些⼯具编程技巧以及相关的要点。当然我也希望各位继续参加 .NET 20 周年的学习挑战赛 - ASP.NET Core 开发 。*相关学习资源1.C# 学习 https://docs.microsoft.com/zh-cn/dotnet/csharp/2.C# Lambda 表达式https://docs.microsoft.com/zh-cn/dotnet/csharp/languagereference/operators/lambda-expressions3. C# LINQ 表达式 https://docs.microsoft.com/zh-cn/dotnet/csharp/linq/4.NuGet 相关知识 https://docs.microsoft.com/zh-cn/nuget/往期推荐:CA周记 - 2022年的第一课RustCA周记 - 用 Visual Studio Code 做基于 .NET MAUI 跨平台移动应用开发CA周记 - 通过 Azure ML GitHub GitHub Action 打通 ML 开发的任督二脉CA周记 - 宇宙最強的IDE - Visual Studio 25岁生日快乐CA周记 - “探店”低代码CA周记 - 云上“炼”码兵器 GitHub Codespaces更多原创文章与资源共享请关注Kinfey Techtalk