文档章节

我对C#的记录与见解

quanwei9958
 quanwei9958
发布于 2015/11/21 22:00
字数 864
阅读 140
收藏 1

C#用起来很爽倒不是因为语言本身很爽,是因为IDE太强大。
win下的VS: 让人有种依赖的感觉,因为一旦你适应了其中的操作,快捷键,自动补齐等就会变得无法自拔,仿佛没有这功能的IDE就是垃圾。
osx,linux下的monodevelop:用的不多,偶尔会在Ubuntu上用用,不过界面清爽,而且基本功能也都俱全,虽然没有VS那么强大,不过依然能感觉出是做的很用心的一款软件。

对于try-catch 与 if-else

他们两个的争论持续了很久了,无论是java区还是c#区的。以我目前的称不上老道的经验是支持if-else派的,首先try-catch之所以烂是因为使用它的程序员基本功比较烂,将所有问题都try-catch起来然后一个总的Exception试图解决所有问题是我见过初级开发者的通病! 正是因为如此,所以我才非常不建议使用try-catch,除非写者有丰富的经验将catch的很仔细能够处理的很漂亮。 而if-else 虽然更加简单,笨拙(看起来如此)但是执行起来确是带来相当的可靠性。    
例如:    
将 int.Parse 改成 int.tryParse     
将IO操作的 stream.write 套一层 try-catch 改成 先if(stream.canWrite) stream.write    

任务的多线程处理

C#的多线程? 我依然不建议用,除非不得不用。    
C#提供了很多种替代直接多线程的方案,比如一些常规的异步接口(例如Socket的BeginAccept),  BackgroundWorker模型,这些模型都会有一个很完整的线程生命周期,很多适用场景。    
比如,在后台执行一段耗时任务,执行完之后界面上进行数据的展示,使用BackgroundWorker模型就会很完美的解决你的问题,而不用手动在线程中Invoke来切换到前台。    
再比如,你想要后台发送一封电子邮件,也有内置的异步方法。    
定时执行有Timer。    
C#本身提供了许多能够避免直接使用Thread的方式,也有很多任务压根就不用多线程就可以完成。比如如果你要提供一个服务,用于面对许多个用户连接,可能最先想到的是多线程执行任务,但是即便如此用多线程也不是一个好的解决方法,因为只是线程本身就要耗费掉一大块资源,多个用户接入之后性能会大幅度降低,一种实用的方案是使用消息循环,也能不错地提供相应,而且资源使用量远低于使用多线程的方式。

C#语言的未来

随着.NET版本不断迭代,C#语言加入了越来越多的函数式特性,这也是语言发展的一个必然选择,即使它的初衷是让开发者本身不关注语言,但是随着大众开发者能力的普遍上升以及当今整体水平的推动,原始的C#并不好用,还是存在太多的条条框框,而一个灵活的方向就是函数式语言,随着匿名委托,Linq,lambda在高版本的引入,这一特性越发明显。

© 著作权归作者所有

quanwei9958

quanwei9958

粉丝 29
博文 79
码字总数 36250
作品 0
程序员
私信 提问
30岁了,刚刚起步,希望自己的每一个进步都能被印证下来.

我成长在祖国南方的一个小城镇,大学学计算机,不过一点都没学,疯玩了4年,毕业设计还是花钱找人做的,直到1个月以前,什么是visual studio都不知道,唯一会的就是用c写hello world,我承认我就是个...

沉淀岁月
2013/09/12
1K
5
萌新web前端从零开始(1)——计算机入门

    前言:这是一个萌新从零开始的学习之路,与大家分享自己的看法与见解,还请指出错误与遗漏点方便改正。     1.认识计算机。     计算机语言常见的有C,PHP,Ruby,Java,C#,...

巧克力与香子兰
01/14
0
0
基于C#的机器学习--机器学习建模的基础

构建ML模型的步骤 现在我们已经看了解到了一些ML应用程序的例子,问题是,我们如何构建这样的ML应用程序和系统? 下图总结了我们使用ML开发应用程序的方法,我们将在下面更详细地讨论这个问题...

王振耀
10/05
0
0
C#开发微信门户及应用(8)-微信门户应用管理系统功能介绍

最近对微信接口进行深入的研究,通过把底层接口一步步进行封装后,逐步升级到自动化配置、自动化应答,以及后台处理界面的优化和完善上,力求搭建一个较为完善、适用的微信门户应用管理系统。...

walb呀
2017/12/04
0
0
知名互联网公司直招C#.net工程师,有料的直接给我发邮件[5k~15k]

知名互联网公司直招,有料的直接给我发邮件 邮箱zhaozhaoxiong#sina.com (#换成@) 工资是5k~15k,上不封顶,根据能力来。 .NET开发工程师 职位描述: 从事运营平台软件开发工作, 主要负责移动...

shaoxiong
2011/09/05
1K
5

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
12
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部