【C#冷知识系列】(一)那些你知道或者不知道的奇淫巧技

引子

正如我在个人介绍中所写,我是一个仍然坚持.NET的头铁高级软件工程师,研究C#,.NET已经六年多,一直坚持认为自己的能力不足以教授别人,所以一直没有想法写博客。工作几年,内容涵盖了.NET框架下的各种软件的开发,WPF,WinForm,WebForm,ASP.NET,MVC5,开发的软件几乎涵盖了.NET家族的各个成员。让我下定决心写一系列C#高级开发文章的原因并不是因为某天早上起床突如其来的兴致勃勃的决定要将自己这些年积累的经验分享给大家,而是是因为公司前端的一句“快脱坑吧,你们做WPF没有什么前途,公司为了跨平台你们的项目都要用Electron重做了!”。

听起来有点悲伤,联想到公司已经连着三年没有从校招中招到一个C#的工程师了,似乎没落也不觉得奇怪。.NET开发者纷纷脱坑,新人却无以为继,眼看着C# .NET越来越冷清,我也不是没有任何的准备,由于C#和Java那些不能说的秘密,让C#程序员转型Java有着得天独厚的便利条件,我在公司中同样做过Java的开发,并在某一个时间段内考虑过转型Java,也曾想过不做.NET程序员,干回嵌入式的老本行,也在Electron出名之后就不断关注Electron的发展,学习Vue,为已经到来的跨平台需求做准备。

出去看了外面的世界才觉得还是家里好。总觉得自己啥也不行就是好折腾,这些年主流的编程语言都玩过,却始终自顾自的认为C#是很美的一门语言,另一个让我觉得很美的语言是Python,所以目前我会使用C#做桌面应用,使用Python写脚本。.NET Core的出现也让我对于C#的命运多了些许的希望,我们都能看到微软在跨平台上面的努力,成事在天,对于以后会怎样,谁也无法给出确切的预测。

一方面是冷清的大环境,一方面是还算庞大的市场,有很多公司.NET的软件需要维护,相比于C++ QT的跨平台桌面软件解决方案,.NET的效率优势十分巨大,在不需要跨平台的时候,优势还是相当大的,那.NET的开发者又是什么情况呢?在公司的面试过程中,我发现无论是校招,还是社招,对于C#语言,大家普遍认为比较简单,入门门槛低,但是实际对于语言的掌握程度却鲜有能精通的,有些是根本没有深入了解,究其原因是学习一门编程语言,入门容易,提高很难。网上很多入门视频,很少深入书籍,这就导致了提高到一定程度的之后,就没有人教你了,只能在工作中慢慢摸索前进,有人带还好,没人带的话,这个过程就比较痛苦。有些是固步自封,不愿主动了解C#的一些新的特性,不愿深挖其中的奥秘。

作为局中人,我希望能够通过我的努力,为我喜爱的东西做点力所能及的贡献,所以经过一段事件的准备,我计划出一系列C#高级编程的教程,内容涵盖了新的语言特性,专题讲解,实战项目等,希望我的努力能让更多的人深入的了解C#,了解.NET,能让更多的人技术更加的精进,不再拘泥于调用API,在别人设计好的框架下开发。希望能带着初级程序员走进高级的殿堂。

课程介绍

那么第一个系列,我叫他冷知识系列,是对比较简单的语法,知识点的一个补充,内容涵盖了初级程序员不太会用到的一些奇淫巧技,C#语言的新的语法特性等,学会了这些,不仅可以极大的开阔视野,简化编程,也可以在同伴同事前面秀一把。相信这个系列一定会让你有所收获。

适用人群

需要强调的是,这个系列并不是C#的初级文章,要看懂并且消化该系列的知识,需要你至少完成了C#初级的学习,也就是至少看过一遍C#初级的书籍,敲过一遍代码,如果你有实际的项目经验那就更好了,本系列一定能让你的C#技巧提高一个层次。

我很喜欢之前在论坛上看到的一句话,“不怕你会C#,怕就怕你只会C#”,想做高级开发工程师的童鞋,还是建议你多学一些语言,清楚编程语言的不同特性到底意味着什么,学好软件设计,我也有兴趣之后跟大家分享一些在实际工作中很常用的设计模式。毕竟社会是残酷的,出门多背几样必需品,有备无患

C#还没有死,我们也不必在夹缝中生存。

原文地址:http://blog.51cto.com/14200510/2350792

时间: 2024-10-10 20:31:35

【C#冷知识系列】(一)那些你知道或者不知道的奇淫巧技的相关文章

【C#冷知识系列】(四)关于枚举的冷知识

枚举作为Flag使用 语法 [Flags] public enum Permission { create = 1, read = 2, update = 4, delete = 8, } 注意事项 由于flag的本质是使用或运算进行位运算,所以枚举值必须是能进行或运算的 应用 权限管理 使用 //初始化 WeekEnum week = (WeekEnum)127; Console.WriteLine(week.ToString()); //输出 Sunday, Monday, Tuesday,

Python 浮点数的冷知识

本周的PyCoder's Weekly 上分享了一篇小文章,它里面提到的冷知识很有意思,我稍作补充,分享给大家. 它提到的部分问题,读者们可以先思考下: 若两个元组相等,即 a==b 且 a is b,那么相同索引的元素(如 a[0] .b[0])是否必然相等呢? 若两个对象的 hash 结果相等,即 hash(a) == hash(b),那么它们是否必然相等呢? 答案当然都为否(不然就不叫冷知识了),大家可以先尝试回答一下,然后再往下看. -----思考分割线----- 好了,先来看看第一个问

前端不为人知的冷知识

前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开

你根本不知道的冷知识,看完我惊呆了,原来.....

有些冷知识,非常的有趣,而且说不定就是之后与人交流的谈资,所以,这些必须收藏. 历史文学 1. 朱熹一辈子不吃豆腐 3.方孝儒是中国历史上唯一一个被"株十族"的人 4.猫是<圣经>里唯一没有提到的家养动物 5.埃及金字塔四面均为等边三角形,正对东南西北四个方位 6.条条大路通罗马的原因如图: 科学百科 1. 兔子不会流汗 2.玫瑰和苹果属同科,百合和大葱属同科 3.一张纸不能对折8次 4.北极熊是左撇子 5. dreamt 是唯一以"mt"结尾的英文单词

科普你知道,运动冷知识,火速围观

也许你是一名资深的健身爱好者,对健身知识已经了如指掌:也许你刚加入健身行列不久,对健身只有片面的认识.但不算是健身新手还是老手,总有一些你不知道的"冷知识"! 关于跑步 1.90%的马拉松运动员腿都很细,所以跑步根本不用担心粗腿: 2.在跑步机上如果你抓着扶手跑步,会直接到时你所消耗的热量降低20%: 关于饮食 1.断食12个小时,会是你的基础新陈代谢下降40%,靠节食减肥基本等同于无用功: 2.快餐店老板不会告诉你一份套餐热量有多少,最好的办法就是自己烹饪: 关于热量 1.人体每增加

前端冷知识集锦[转载]

作者:伯乐在线专栏作者 - 刘哇勇 前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代

线程基础知识系列(三)线程的同步

本文是系列的第三篇,前面2篇,主要是针对单个线程如何管理,启动等,没有过多涉及多个线程是如何协同工作的. 线程基础知识系列(二)线程的管理 :线程的状态,控制,休眠,Interrupt,yield等 线程基础知识系列(一)线程的创建和启动  :线程的创建和启动,join(),daemon线程,Callable任务. 本文的主要内容 何谓线程安全? 何谓共享可变变量? 认识synchronized关键字 认识Lock synchronized vs Lock 1.何谓线程安全 多线程是把双刃剑,带

前端不为人知的一面--前端冷知识集锦

前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开

前端不为人知的一面–前端冷知识集锦

前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以 javascript: