iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#新手易犯的问题有哪些
  • 351
分享到

C#新手易犯的问题有哪些

2023-06-17 06:06:07 351人浏览 八月长安
摘要

本篇内容主要讲解“C#新手易犯的问题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#新手易犯的问题有哪些”吧!1 及时释放资源CLR托管环境扮演了垃圾回收的角色,所以你不需要显式释放已创

本篇内容主要讲解“C#新手易犯的问题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#新手易犯的问题有哪些”吧!

1 及时释放资源

CLR托管环境扮演了垃圾回收的角色,所以你不需要显式释放已创建对象所占用的内存。但这不意味着你可以忽略所有的使用过的对象。许多对象封装了其 他类型的系统资源(例如,磁盘文件,数据连接,网络端口)。保持这些资源的使用状态会急剧的耗尽系统的资源,削弱性能并且最终导致程序出错。当你打开一个 文件、网络端口或者数据连接时,当你不再使用这些资源时,应该尽快显式释放这些资源。
另外针对资源的操作,一般需要增加异常捕获处理(Try..Catch),这时别忘记在finally中进行资源释放,以确保在捕获异常时也可以正常释放资源。

2 正确停止多线程

FileStream fs = File.Open(…);
Try{…} Finally{ fs.Close;}

假设如上代码在工作线程中,已经进行到finally里面,这个时候UI线程调用了该线程的Abort()方法,则很有可能fs.Close还没有执行的时候,工作线程跳出finally代码块了。这样你的fs就永远不会被Close了。
大多数情况下,finally会永远被被执行,但不包括调用Thread.Abort所引发的ThreadAbortException异常,鉴于此理由,不建议使用Abort。
要正确停止线程,不在于调用者采用了什么行为(不要直接使用Thread.Abort()),而更多依赖于工作线程是否能主动响应调用者的停止请求。
大体机制是,如果线程需要被停止,那么线程自身就应该负责给调用者开放Cancel的接口。

3 类型转换相关

  • 如果从数据库中读取某个值,有数据时是int类型,没有数据的话获取到的是null,类型强转则会异常。所以一般很少用强转,用的话也必须做一个异常捕获,避免程序异常。

  • 在强转不好的情况下,我们建议使用TryParse方法,该方法已经对Parse方法进行了异常处理。

  • 也可以用Convert,同样需要进行异常捕获;其实,凡是涉及到类型转换,序列化等操作的地方,都需要捕获异常;

4 字符串操作问题

在对字符串操作中,若涉及大量拼接操作建议使用StringBuilder。若使用String会带来明显的性能损耗。原因在于string对象是 个很特殊的对象,它一旦被赋值就不可改变。在运行时调用String类中任何拼接操作(如赋值、”+”等),都会在内存中创建一个新的字符串对象,也意味 着要为该新对象分配新的内存空间。

5 const常量修改导致的问题

当程序引用其他dll中的const常量时要特别引起注意。
若修改了此dll中的const常量后,要重新编译引用了此dll中这个const常量的所有程序,否则程序中使用的这个常量值将和dl中的不一致。
另外如果使用readonly代替const可以解决这个问题,不需要重新编译,因为const是编译型常量,而readonly是运行时常量。

6 C#编译目标平台问题

当程序依赖的dll的编译的目标平台是X86,则程序本身的编译目标平台也必须是X86(而不是默认选项Any CPU),否则64位电脑将无法运行。

7 跨线程访问控件

开发界面程序时,会遇到比较耗时的操作,为了程序的友好性,我们一般会在任务线程中执行耗时操作,并将执行信息显示在主UI线程。
假如直接在任务线程中操作主UI线程中的控件,这样极易出现异常,报“不能在其他线程中修改创建控件线程的值”,如果设置了禁止编译器对跨线程访问做检查,就不会报错,但是会出现无法预知的问题。此时建议采用委托或匿名委托的方式实现。

到此,相信大家对“C#新手易犯的问题有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: C#新手易犯的问题有哪些

本文链接: https://www.lsjlt.com/news/287558.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#新手易犯的问题有哪些
    本篇内容主要讲解“C#新手易犯的问题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#新手易犯的问题有哪些”吧!1 及时释放资源CLR托管环境扮演了垃圾回收的角色,所以你不需要显式释放已创...
    99+
    2023-06-17
  • Linux新手最容易犯哪些错误
    这篇文章主要介绍“Linux新手最容易犯哪些错误”,在日常操作中,相信很多人在Linux新手最容易犯哪些错误问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux新手最容易犯哪些错误”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • Python新手入门最容易犯的错误有哪些?
      Python以其简单易懂的语法格式与其它语言形成鲜明对比,初学者遇到最多的问题就是不按照Python 的规则来写,即便是有编程经验的程序员,也容易按照固有的思维和语法格式来写 Python 代码,这样就容易发生错误,以下列举了Pytho...
    99+
    2023-06-02
  • Java新手常犯的错误有哪些
    本篇内容主要讲解“Java新手常犯的错误有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java新手常犯的错误有哪些”吧!Java错误,主要包括两方面,一种是语法错误,另一种是逻辑错误。语法...
    99+
    2023-06-17
  • ASP.NET新手问题有哪些
    本篇内容介绍了“ASP.NET新手问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ASP.NET新手问题1,关于ref与out的区别...
    99+
    2023-06-17
  • SEO新手常见问题有哪些
    这篇文章给大家分享的是有关SEO新手常见问题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、帮我看看我的站点某某.com,这个站点SEO的是否到位?简单分析网站的SEO效果可以从网站TKD标签的书写方法、...
    99+
    2023-06-10
  • C#编程中最容易犯的编写错误有哪些
    这篇文章主要讲解了“C#编程中最容易犯的编写错误有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#编程中最容易犯的编写错误有哪些”吧!1、拼接字符串在C#编程中,字符串类型的处理是比较...
    99+
    2023-07-05
  • C++中新手容易犯的十种编程错误汇总
    目录前言1、有些关键字在cpp文件中多写了2、函数参数的默认值写到函数实现中了3、在编写类的时候,在类的结尾处忘记添加";"分号了4、只添加了函数声明,没有函数实现5、cpp文件忘记...
    99+
    2024-04-02
  • java中的易混问题有哪些
    今天给大家介绍一下java中的易混问题有哪些。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。第一,final, finally, finalize的区别。fin...
    99+
    2023-06-03
  • pandas初学者容易犯的错误有哪些
    这篇文章给大家分享的是有关pandas初学者容易犯的错误有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用pandas自带的函数读取大文件第一个错误与实际使用Pandas完成某些任务有关。具体来说我们在实际...
    99+
    2023-06-25
  • Java程序最容易犯的错误有哪些呢
    今天就跟大家聊聊有关Java程序最容易犯的错误有哪些呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  1.Duplicated Code  代码重复几乎是最常见的异味了。他也是Re...
    99+
    2023-06-03
  • Web开发者易犯的严重错误有哪些
    小编给大家分享一下Web开发者易犯的严重错误有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.  “重新发明轮子...
    99+
    2024-04-02
  • Linux新手容易犯的7个错误是什么
    本篇内容介绍了“Linux新手容易犯的7个错误是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!7. 选择错误的 Linux 发行版Lin...
    99+
    2023-06-16
  • CSS编码时易犯的十大错误都有哪些
    这期内容当中小编将会给大家带来有关CSS编码时易犯的十大错误都有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。你对CSS编码时易范十大错误是否熟悉,这里和大家分享一下...
    99+
    2024-04-02
  • 新手建站有哪些问题需要注意
    这篇文章主要介绍“新手建站有哪些问题需要注意”,在日常操作中,相信很多人在新手建站有哪些问题需要注意问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”新手建站有哪些问题需要注意”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-10
  • 容易犯的10大JavaScript错误是哪些
    容易犯的10大JavaScript错误是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为了便于阅读,每个错误都被缩短了,让我们更深入地研究...
    99+
    2024-04-02
  • web程序员最容易犯的技术错误有哪些
    本篇内容介绍了“web程序员最容易犯的技术错误有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 为...
    99+
    2024-04-02
  • c#常见的问题有哪些
    今天小编给大家分享一下c#常见的问题有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 ...
    99+
    2024-04-02
  • C#转义的问题有哪些
    本篇内容主要讲解“C#转义的问题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#转义的问题有哪些”吧!关于C#转义的提问 public void BuilJ...
    99+
    2023-06-17
  • Java入门易踩坑的问答题有哪些
    本篇内容介绍了“Java入门易踩坑的问答题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1,java基本类型下面属于java基本数据类...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作