最全面、最前沿、最专业的游戏研发实战

提供最全面的游戏研发技能分享,让您在最短时间变成高级游戏工程师

查看:0|回复:6

【行业】C#(csharp)这门语言的优势在哪?

 attach_img

3

帖子

9

回复

11

积分
最后登录:
2025-04-26 19:31
注册时间:
2023-02-26 10:06
楼主
  发表于:2025-04-26 22:50:03|查看用户信息

身边同学朋友一问,居然都说是为了Unity3d才来学的C#。难道这门语言自己没有其他“作用”了嘛?

4

帖子

10

回复

13

积分
最后登录:
2025-04-26 21:14
注册时间:
2024-04-07 15:49
1 楼
  发表于:2025-04-26 22:51:53|查看用户信息

你看C#的现状:

可以开发系统,但不如C++和Rust

可以开发AI,但不如Python

可以开发大数据,但是不如Java

可以开发手机APP,但不如Swift(iOS)、Kotlin(安卓)

可以开发互联网WEB,但国内不如Java

可以开发游戏,但画质最好的虚幻用的C++

可以开发单片机应用,但打不过C++、Python、C

可以跨平台开发,但界面库又打不过QT(C++)、Electron(HTML+CSS+JS)

可以当脚本语言用,但是干不过Python、bash

甚至因为互联网的影响,在C#的主战场工控行业,都在被Java挖墙脚


你看,这么看起来是不是觉得C#好像什么都不如别的语言

但是换个视角,如果你要开发一整套,云端web可以用 asp.net (MVC或者前后端分离都可以),终端可以用MAUI做跨平台应用,设备控制可以用Winform或者WPF做Windows设备,用Blazor或者Avalonia做Linux设备,用nanoframe做单片机设备,甚至还能配合unity做AR/VR进行3D效果实景展示


这一切都是基于C#的,也就是说,如果你牛逼,你可以一个人/一个班子包办所有流程。


但如果你换其他语言,那你就得整个语言大礼包,比如云端Java/PHP、客户端Java/C++/Kotlin/Swift(每种设备可能支持不同语言)、单片机MicroPython/Lua/C++,VRAR C++


这里面就C++能够一肩挑,但那个开发体验,懂得都懂


另一方面,语言一多,对于团体来说,对开发人员的要求就会越高,一种语言至少得有一个挑得起重担;对于个人开发来说,多一门语言多的不止一倍的学习开发时间


综上所述:

什么都能干,什么都干的像模像样,但又打不过其他语言。虽然打不过的都有理由:有些是因为历史原因(Java),有些是因为确实不是强项(AI、大数据),还有些是因为和系统耦合(IOS、安卓),有些是因为刚刚起步(跨平台UI)。


但综合来说:

这或许就是C#的优势,但同时也是C#的劣势


11

帖子

8

回复

16

积分
最后登录:
2025-04-26 21:03
注册时间:
2023-03-12 17:29
2 楼
  发表于:2025-04-26 22:53:53|查看用户信息

C#是目前来说最甜的语言,在Windows上只会更甜:

1、C#可以在语言层面做到支持SIMD等等

2、C#的性能一直很高,当然是相对于某J字号语言来说的

3、C#的糖甜的恰到好处,举个例子:if (x is TYPE res) { do something },直接读都知道是什么意思。

4、C#的代码是真的可以不要注释,写过的人应该很有体会


WITH WINDOWS:

1、C#对COM组件的支持应该是目前来说第二好的

2、wpf+c#的开发速度可以快到你不敢相信

3、Visual Studio和C#


当然它有一个最大的黑点:

微软家的


5

帖子

18

回复

23

积分
最后登录:
2025-04-26 18:50
注册时间:
2023-02-26 14:02
3 楼
  发表于:2025-04-26 22:55:00|查看用户信息

优势在于没那么卷,即使你真的有点小菜,在苏州这种制造业云集城市,你可以找到一份薪水还说的过去的工作。


Java就反过来了,听说你很强?对不起,卷麻了,隔壁应聘者比你更强。


那有人可能会问:为什么c#不卷?因为人少啊,而且目前c#的主要活跃领域在实体行业,一大部分培训班出来的或者应届生误认为计算机毕业就只剩下互联网这条路,或者谈到计算机科学脑子里第一反应就是Java所以才造成了现在这个局面。


当然,无脑吹是肯定不合适的。实体行业的软件部门没这么多人卷进来一部分确实是因为信息差,但还有一部分是因为一些其他特殊的原因,比如薪资待遇,工作环境等等。


5

帖子

5

回复

8

积分
最后登录:
2025-04-26 18:45
注册时间:
2023-03-12 22:23
4 楼
  发表于:2025-04-26 22:56:00|查看用户信息

假如国内C#和Java的使用份额颠倒了下,预计会发生以下事情...

1,Nuget百花齐放,但凡有点积累的开发团队,都会有自己完整的Nuget基础工具集,这点非常重要,回顾下这么多年来,重复的代码写过多少?每次重复都是极大的浪费。

Vs Java:再不用去搞麻烦的Maven,Nuget的门槛太低,使用体验太好。


2,大家都用上了正版软件套装,VS社区版和SQLServer体验版,直接节省了大量时间去搞各种工具的破解版,也避免了破解过程中的安全风险。

Vs Java:别说社区版的IDEA也能凑活的SpringBoot,难用就是难用,最直接的例子,就是盗版IDEA的使用率,再不用破解版的Navicat。


3,什么Java8?.Net Core 5678不香嘛?var声明,Task协程,官方Concurrent集合,更不要提节省大量增删改查时间的EF,每个先进语法对应的就是实实在在的开发时间缩短。

Vs Java:敢不敢认真算算每年用类型声明变量(Java11以下没有var),单独声明线程池(Java19以下没有协程),等等一系列落后的语法浪费了多少时间?


4,GC?C# 程序员基本不讨论这个,因为这块不需要我关心,最多熟悉几个常用的Dump命令,就足够处理线上问题了,GC那是运行时,研发层的事,我一个应用开发,你要我懂GC,秀逗了。

Vs Java:终于调整好GC了,M的之前回收时间太长了,程序总是一卡一卡的,每年浪费在GC上的时间有多少?这些时间是为了促进业务发展,应该花出去的吗?


5,作为开发语言和运行时,C#真正做到了,不需要应用开发者关心太多业务应用以为的事情;Java至今都是个混合着社区改进,运行时和应用开发混在一起的生态。

应用开发追求的,应该是开箱即用,除了业务应用,其他的我不考虑,C#在这方面的优势非常明显,并且一直朝着这个方向前进,Java因为所谓的“社区属性”和“Orcale”,导致研发方向有点混乱,是我最直观的感受。


5

帖子

10

回复

14

积分
最后登录:
2025-04-26 20:10
注册时间:
2024-10-11 22:10
5 楼
  发表于:2025-04-26 22:56:46|查看用户信息

C#是我自学的第二门语言。第一门是VB。当时学的时候没感到什么,照着教程装好Visual Studio,直接F5就可以运行了,这么傻瓜式的入门体验给我一个很可怕的误解——学编程的门宽门槛很低……实际上,这些都是宇宙第一IDE的功劳。


学了几年C#,做了几个小玩意后,发现C#作为一门静态语言,有点不灵活,要运行一段小代码,需要罗里吧嗦写一堆。所以,决定尝试下动作飘逸的动态语言。


学过一点python,因为其靠缩进而非括号来区别代码段,第一眼就被我嫌弃了。最后,不了了之。


接着入了javascript的坑,js的灵活程度远超我的想象,各种奇葩的用法学都学不完。但是呢,太过灵活之后,反而让我怀念C#的严谨。


静态语言跑起来很麻烦,需要经过编译,不像动态语言可以直接执行。但是在调试体验上,C#配合VS,让人舒心太多。js的bug非常难发现,所以后续才有了typescript的出现,让动态语言不要那么放浪。


C#调试好,编写体验也强。在智能提示的辅助之下,首先减少了低级书写错误,第二个就是可以少看文档,api的用法就算没有注释,从参数和返回值上也能猜一猜。而js么,等你意气风发地跑起来等待一个美好的结果时,才告诉你,你第一个就单词拼错了……


5

帖子

10

回复

14

积分
最后登录:
2025-04-26 19:00
注册时间:
2024-03-30 12:14
6 楼
  发表于:2025-04-26 22:57:44|查看用户信息

C#优势就是大而全,性能好语法多。


五十多个关键字,连in out 都是关键字,每个语法都能解决一些问题。


适合比较有追求的程序员。那些只求尽快完成任务,只会import的码农估计不会喜欢。


如果看生态环境,.net 像大家闺秀,里三层外三层,有内涵 博学多才但是不灵活。


python像星宿老仙、吸星大法,天下武功都为我所用。


Java像印度阿三,一个摩托车挂12个阿三,人多力量大。


当程序员如果是为赚钱,应该扬长避短,Java python 鼠标一点啥都有了,还纠结啥,不是C#的菜。


C# 我个人觉得Unity和游戏服务器后台是比较好的方向。其余方向,优势不大。


共 1/1 页

0

帖子

0

回复

0

积分
最后登录:
1970-01-01 08:00
注册时间:
1970-01-01 08:00
会员必须登录才能发布帖子! 点击登录