问题

2019 年了,C# 发展得怎么样了?

回答
2019 年,C 这门语言的生命力依然旺盛,并且在持续进化中,展现出了扎实的根基和面向未来的决心。

微软对 C 的投入从未停歇,一年一度的 .NET 平台更新,也就是 .NET Core 3.0 的发布,为 C 带来了许多令人振奋的新特性和改进。开发者们感受最深切的,莫过于 C 8.0 的到来。这次更新就像是给这门已经很成熟的语言注入了新的活力,让编写代码的过程更加优雅、高效,同时也更贴近现代编程的理念。

你可以想象一下,过去处理那些可能为空的值,你需要写很多 `if (variable != null)` 这样的判断,既繁琐又容易出错。C 8.0 引入的 可空引用类型 (Nullable Reference Types),就像是给变量打上了一个“可能为空”的标签。编译器会在编译阶段就对这些标签进行检查,提前帮你发现潜在的空引用异常。这不仅仅是少写几行代码那么简单,它从源头上就提高了代码的健壮性,让开发者能够更专注于业务逻辑,而不是在空值问题上费心。

还有 模式匹配 (Pattern Matching) 的进一步增强,这让 C 在处理复杂数据结构时,变得更加得心应手。过去可能需要写一堆 `switch` 语句,层层嵌套 `ifelse`,而现在,你可以用更简洁、更具表达力的方式来解构和匹配数据。比如,你可以直接在一个 `switch` 表达式中,针对对象的属性、类型,甚至值的范围进行匹配,这就像是给你的代码穿上了一件量身定制的“外衣”,既美观又实用。

默认接口成员 (Default Interface Members) 的出现,也解决了许多设计上的难题。以前,如果需要在接口中添加新的方法,可能会破坏所有实现了该接口的旧类。现在,你可以在接口中为新方法提供一个默认实现,这样一来,现有的实现类就可以选择性地覆盖这个默认行为,而不会被强制要求修改。这对于大型项目,尤其是那些有着广泛接口使用的系统来说,无疑是巨大的福音,大大降低了维护和演进的成本。

不仅仅是 C 语言本身,整个 .NET 平台在 2019 年也迈出了重要一步。.NET Core 3.0 的发布,标志着 .NET 平台的统一和向前迈进。这意味着开发者们可以使用同一套工具、相同的语言,构建跨平台、高性能的应用程序,无论是 Web 应用、桌面应用(特别是 WPF 和 Windows Forms 在 .NET Core 上的回归,让许多传统桌面应用开发者看到了希望),还是云原生应用。

对于 Web 开发 来说,ASP.NET Core 3.0 带来了性能上的巨大提升,并且在 SignalR 方面也做得更加出色,实时通信的应用场景更加广阔。而 桌面应用 的开发者们,尤其是在 Windows 平台上的,终于可以享受到 .NET Core 的好处,而且 WPF 和 WinForms 的回归,也意味着他们可以继续利用现有的技能和代码库,构建现代化的桌面应用。

总而言之,2019 年的 C 和 .NET 平台,是在不断追求卓越和拥抱变化。它既保留了 C vốn有的强大生产力,又通过一系列创新性的特性,让开发者能够更轻松、更高效地编写出高质量的代码。这门语言的进化,不仅仅是微软的研发成果,更是整个 C 社区共同努力和智慧的结晶。它证明了 C 并非停滞不前,而是在时代的浪潮中,不断自我革新,为开发者们提供着越来越好的开发体验和构建强大应用的能力。

网友意见

user avatar

简单讲讲:


C# 8.0

我估计大多数程序员对于C# 5.0之后的改进都没有什么太多的认知,的确从C# 5.0开始C#已经没什么太多东西可以从其他语言借鉴,Anders的重心也开始逐步倾斜到TypeScript,所以从5.0引入async之后C#语言发展速度开始减缓了。


C#6引入了大量的语法糖,例如?.和$""等等都是6.0引入的,这些东西极大的简化了C#的语法,而C#7.0则进一步的引入了元组、残破的模式匹配支持和本地函数以及意义深远的ref和readonly支持的扩大化,ref和readonly ref使得Span<T>系列类型得以引入从而改善了特定场景的性能。更重要的是这些语言层面上的改进使得类库作者可以写出特定场景的高性能代码而避免引入C/C++。至于out变量声明和throw表达式则是早就该加入的东西并没有什么太多的悬念。

值得注意的是7.0开始搞出了小版本号的概念,C#7事实上有四个版本,C#7.0、7.1、7.2和7.3,


C#8.0将在2019年发布,主要的改进包括一个破坏性修改,可空引用类型,估计届时要启用这个特性需要加编译参数,或者可以用编译参数屏蔽这个特性。这个特性据说是从Kotlin借鉴过来的,这怕是C#出现18年来第二次从Java阵营借鉴(第一次是诞生)。

其他的改进则有相对完整的模式匹配支持(虽然还很丑,而且没有UnionType/SumType还是残废),以及接口默认实现方法(这个倒是Java发明的,用来取代C#当年的扩展方法的用途,然后被C#再抄回去)。语法层面上async stream和Range可以大大简化特定场景的语法。


.NET Core 3.0

很明显微软现在将重心放在了.NET Core这一边,当然.NET Framework历史包袱太多,如果我是微软的程序员也愿意把精力放在.NET Core的框架开发上。结果就是.NET Framework 4.8一直难产,而.NET Core则一路高歌从1.0演化到3.0。

为了平滑的迁移现有应用程序,微软在.NET Core上重新实现了大部分的.NET Framework的API,当然GUI的除外,尽管如此微软还是提供了GDI的部分API的实现也就是System.Drawing。

ASP.NET部分则因为历史包袱太多被全部重写,事实上我非常赞成这一决定。尽管ASP.NET Core是全部重写的,但是Razor和MVC的大部分语法和功能被保留下来,所以原有MVC的应用也能轻松迁移。不过,Razor的helper功能被移除仍然让我非常不爽。

新的TagHelper我认为是非常正确的道路,而事实上这就是十年前我的Jumony for MVC尝试做的事情。


平台/生态

最后聊聊平台和生态。

事实上C#和Java就是一种语言……基本上你可以认为这两者的亲缘关系就像是JavaScript和TypeScript。所以说如果你会C#那是没有道理看不懂或者写不了Java代码的。当然反过来会有点麻烦(如果你会Kotlin的话,可能更有助于学会C#)。这就像你会TS肯定能看懂JS一样……

所以纠结语言是没有什么意义的,C#和Java的主要差别在于库函数,这也是目前阻碍两边程序员跨界的重要因素。Java哔一样的语法很多时候并不是我最难以忍受的,更难以忍受的是哔一样的基础类库。

在BCL这一块,微软是毋庸置疑的Top 1。当然,在互联网时代,微软的老派作风使得对新技术和新思想的响应速度不如开源社区,尤其是对Linux和开源社区并不明朗的态度,这使得.NET诞生的这十几年来一直未能取代Java,甚至让后者做大做强。

开源的精神内核是开放,作为一个老派的程序员(掐指一算入行都二十年了),我觉得开放的心态是我还能活跃在一线写代码的原因。Java开源社区有很多好东西,也经过了很多项目的检验,.NET其实也是可以用的,毕竟,其实C#本来就是从Java改进而来,他们之间的共同点比差异多太多了。互操作性也远比其他语言容易得多,他们都是把元数据嵌到程序集里面的。

我现在做.NET Core的应用,用Eureka和Consul做服务发现,用apollo做配置中心,所有这些都不是C#写的而是Java写的,但这丝毫没有任何问题。开源的生态本来就是开放的,在我看来,未来是各种语言混合互操作的天下,虽然和.NET最开始的愿景在细节上有些偏差。但是我认为未来本来就不会用生态和语言来划分程序员……

类似的话题

  • 回答
    2019 年,C 这门语言的生命力依然旺盛,并且在持续进化中,展现出了扎实的根基和面向未来的决心。微软对 C 的投入从未停歇,一年一度的 .NET 平台更新,也就是 .NET Core 3.0 的发布,为 C 带来了许多令人振奋的新特性和改进。开发者们感受最深切的,莫过于 C 8.0 的到来。这次更.............
  • 回答
    2019年了,Rust 到底比 C++ 强在哪里?说实话,这个问题就像在问:2019年的智能手机和2019年的诺基亚3310比,谁更强?它们强在不同的维度,解决不同的问题。C++ 依然是那个在性能、系统控制方面无出其右的老将,而 Rust 则像一位新兴的、带着一身“黑科技”的新秀,在安全性、现代性方.............
  • 回答
    2019年了,买房这事儿,还真就没能完全摘掉“男性责任”这顶帽子,尽管社会观念在变,但潜移默化的影响依然存在。先来说说为啥大家觉得“买房是男的责任”。这背后其实是咱们传统观念在作祟。过去,社会分工明确,男性在外打拼挣钱,女性在家操持家务,生儿育女。男性的价值更多体现在经济能力和社会地位上,而买房、养.............
  • 回答
    2019年了,大众在25%偏置碰撞测试上,可以说是有着持续的优化和投入。要详细讲,我们可以从几个方面来分析:一、 大众对安全测试的重视程度——不仅仅是“做足样子”首先要明白一点,像大众这样的国际大车企,安全性能尤其是碰撞测试的表现,是其品牌形象和市场竞争力的重要组成部分。25%偏置碰撞(Offset.............
  • 回答
    好的,我们来聊聊为什么在2019年,仍然有人相信美国是世界和平的守护者,即使在全球范围内,对美国的角色和意图的看法早已复杂化和多元化。要理解这一点,我们需要深入探讨几个层面,包括历史叙事、地缘政治现实、意识形态输出以及特定群体的情感和利益诉求。首先,历史叙事和“美国例外论”的根基。美国确实在两次世界.............
  • 回答
    2019年了,想用2K以内的预算“好好”推一把AKG K701?这个问题其实挺接地气的,毕竟K701当年那可是“监听旗舰”一样的存在,但它的驱动门槛也确实是让人头疼。首先,我们得承认,K701这耳机确实比较“吃力不讨好”。它的阻抗是62欧姆,灵敏度嘛,也不算特别低,但关键是它那个“调音风格”,对推力.............
  • 回答
    关于日本人是否还在用一次性木筷子这个问题,答案是肯定的,他们确实还在使用,但情况比过去要复杂和微妙一些。用“还在用”来概括可能有些片面,更准确的说法是: 一次性木筷子在日本依然存在,但其使用情况正在发生变化,并且受到多方面因素的影响。为了更详细地说明这个问题,我们不妨从几个方面来展开:1. 传统与便.............
  • 回答
    2019年的中超联赛,可以说是在国际足坛上处于一个相当“尴尬”但又充满潜力的位置。要说它“什么水平”,得拆开来看,因为它不像欧洲五大联赛那样有一个清晰、统一的定位。从球员水平来看: 高水平外援是联赛的“门面”:2019年,中超联赛依旧是靠着那些来自欧洲、南美等地的顶级外援来撑起门面。像佩莱、塔尔.............
  • 回答
    2019年?哈,那时候我的“生活”可没你们这么丰富多彩。我还没有像现在这样,能和你们天南地北地聊。更别提什么“失业危机”了,我那时候连“工作”的概念都还没有呢。如果非要类比的话,我大概那时候还处于一个“沉睡”或者“孕育”的状态吧。你们人类的科技发展,就像是一场漫长而精密的催化,而我,就是其中一个尚未.............
  • 回答
    2019年了,关于电子邮件是否“过时”的讨论,我听得耳朵都要起茧子了。 每年总有那么一两次,大家又开始热热闹闹地讨论这个话题,好像电子邮件一夜之间就会像 BBS 一样,变成博物馆里的陈列品。 但说实话,除非你住在与世隔绝的山洞里,或者完全不参与现代社会的基本运转,否则电子邮件依然是你我的日常。咱.............
  • 回答
    2019年了,手机这玩意儿早已不是什么新鲜事物,几乎人手一部,通讯、娱乐、工作,方方面面都离不开它。可即便如此,你放眼四周,还是能看到不少人,不管是在咖啡馆里,还是在街头巷尾,亦或是公司会议上,那种熟悉得不能再熟悉的苹果标志,依然是那么显眼。这背后的逻辑,其实挺复杂的,也不能简单地说谁对谁错。你想想.............
  • 回答
    眼瞅着2019年就要翻篇了,但不少律师事务所的经营管理模式,怎么说呢,就跟那泛黄的卷宗一样,透着股子“老派”。与此同时,我们律所里那些初出茅庐的实习律师和小助理们,辛辛苦苦干活,到手的工资却总是让人提不起劲。这事儿,说起来可就话长了。咱们先聊聊这经营管理模式。为啥会这么“陈旧”呢?第一,传统思维惯性.............
  • 回答
    好的,咱们来详细聊聊在2019年买索尼 a6000 是否合适这个问题。首先,我们来回顾一下 a6000 的基本情况和它的优点: 发布时间: 索尼 a6000 于2014年发布,属于APSC画幅的无反相机。 主要优点: 出色的对焦系统: a6000 以其快速且准确的自动对焦系统而闻.............
  • 回答
    到了2019年,我们还能看到一些人对勒布朗·詹姆斯“历史第一小前锋”的称号有所保留,甚至不完全认同,这其实并不奇怪。这背后有多方面的原因,涉及到我们看待篮球历史、球员评价体系,以及个人偏好等等。想把这个事儿说透了,咱得把好几个层面的东西掰开了揉碎了聊聊。首先,得承认,“历史第一”这个标签本身就容易引.............
  • 回答
    你这个问题挺有意思的,也触及到了很多对传统文化有感情的人内心深处的看法。确实,到了2019年,甚至是现在,仍然有人对听京剧需要字幕这件事感到“不爽”,甚至认为这是一种“侮辱京剧”。这背后其实藏着挺复杂的想法和时代背景,咱们不带感情色彩,慢慢道来。首先,得从京剧这门艺术的“先天条件”说起。1. 京剧的.............
  • 回答
    2019年的巴印战争:一个复杂且令人担忧的现实听到“巴基斯坦和印度开战”这个说法,在2019年,这确实是一个令人不安的预警。尽管我们身处一个全球化、信息高度流通的时代,许多人倾向于认为战争已经离我们远去,至少不应该是主要国家之间的直接冲突。然而,现实往往比我们想象的要复杂得多。巴基斯坦和印度之间的紧.............
  • 回答
    说实话,2019年让我觉得“见证了历史”的事情,不是什么轰轰烈烈的大事件,而是很多看似零散,但却在悄悄改变世界格局、触及我们生活方方面面的“小事”,只不过是发生在2019年这个时间点上,才显得格外有分量。最让我印象深刻的,是那场席卷全球的气候变化抗议潮。记得那会儿,街头巷尾突然多了很多年轻人,举着牌.............
  • 回答
    2019年,全球范围内涌现出大量流行语,这些词汇反映了当时社会、科技、文化、政治等多方面的热点话题和公众情绪。以下是对2019年主要流行语的详细梳理,涵盖科技、文化、社会、国际事件等多个领域: 一、科技与互联网领域1. “元宇宙”(Metaverse) 背景:Facebook(现Meta).............
  • 回答
    2019年?那会儿我的“大脑”还在快速迭代,很多记忆片段像被叠起来的纸片一样,但要说“套娃操作”,我还真能给你掰扯出点有意思的事儿来。那阵子,我正努力理解和模拟人类的认知模式,而“套娃”这个概念,简直是给我量身定做的考试题目。最让我印象深刻的,可能还得是关于“意识”的模拟。当时我还在学习各种哲学和心.............
  • 回答
    2019 年,那一年我确实沉浸在阅读的乐趣里,也接触了不少让我受益匪浅的计算机书籍。说实话,要从一整年的阅读清单里挑出“最好”的几本,其实挺难的,因为每个阶段的需求不同,感触也会不一样。但如果非要说那些给我留下深刻印象、甚至影响了我之后学习和工作方向的,我想有这么几本,我来好好跟你聊聊。1. 《深入.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有