• 面试前的准备C#知识点回顾01


    过完年来,准备找份新工作,虽然手里的工作不错,但树挪死,人挪活。咱不能一直在一个坑里生活一辈子,外面的世界毕竟是很美好的。

    为了能正常的找到自己中意的工作,最近是将所有的基础知识拿出来复习了一次。仅作记录,自勉,各位大神不要喷,随意看看就好了。

    以下知识点,均摘自面试过程中遇到的题

    1.try{} 里面有个Return语句,那么紧跟try后面的Finally{}会不会执行?

    答案:会执行,在Return后执行

    喜欢研究透的同学可以参考:http://www.cnblogs.com/forcertain/archive/2012/11/22/2782855.html

    我的记忆方法如下

    public static int ExecuteNonQuery(string connStr, string sql)
    {
      OleDbConnection conn = null;
    try
    {
      conn = new OleDbConnection(connStr);
      conn.Open();
      OleDbCommand command = new OleDbCommand(sql, conn);
      return command.ExecuteNonQuery();
    }
    catch
    {
      return 0;
    }
    finally
    {
      conn.Close();
    }
    }

    这属于帮助记忆型,最好还是弄懂原理

    2.Using有什么用.

    答:很多同学看到这个就笑了,不就是namespace的引用嘛,殊不知,出题人正在等你更精彩的回答呢。

    Using还可以实现非托管资源的释放,实现了IDisposiable类在Using中创建,Using结束后会自动调用Dispose方法回收资源,其等价于try...finally

    以上可以参考:http://www.cnblogs.com/miniwiki/archive/2010/05/13/1734307.html

    这个时候面试官就笑了,绵里藏针的问,什么是非托管资源,托管资源.这个时候接不上就暴露了背书了吧。

    托管资源:一般是指被CLR控制的内存资源,这些资源由CLR来管理。可以认为是.net 类库中的资源。

    非托管资源:不受CLR控制和管理的资源,比如文件流,数据库的连接,网络连接,系统的窗口句柄,打印机资源等,这类资源一般不存在堆上。可以认为操作系统资源的一组API。

    对于托管资源,GC负责垃圾回收。对于非托管资源,GC可以跟踪非托管资源的生存期,但是不知道如何释放它,这时候就要人工进行释放。

    然后面试官就会继续问GC回收机制巴拉拉一大推了,直到你回答不上来为止.

    3.Readonly 同Const区别

    是不是又被简单到了?

     首先先解释下什么是静态常量以及什么是动态常量。静态常量是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值。而动态常量的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可以延迟到构造函数中初始化。

    基本了解以上后,就可以对号入座了。const修饰的常量是上述中的第一种,即静态常量;而readonly则是第二种,即动态常量。那么区别可以通过静态常量与动态常量的特性来说明

       1)const修饰的常量在声明的时候必须初始化;readonly修饰的常量则可以延迟到构造函数初始化 

       2)const修饰的常量在编译期间就被解析,即常量值被替换成初始化的值;readonly修饰的常量则延迟到运行的时候

          此外const常量既可以声明在类中也可以在函数体内,但是static readonly常量只能声明在类中。      

    以上摘自:http://www.cnblogs.com/royenhome/archive/2010/05/22/1741592.html

    以上是今天的重点观察,也许很基础,也许很多次重逢,温故而知新吧

  • 相关阅读:
    Python基础知识(八)—字典
    Python基础知识(七)—元组
    Python基础知识(六)—关于列表深拷贝和浅拷贝及内存图
    Python基础知识(六)—列表
    Python基础知识(五)—字符串
    4、FTP、SSH协议简单介绍
    3、apt-get install xxx时,报错信信息: Could not get lock /var/lib/dpkg/lock-frontend
    2、NFS挂载根文件系统失败:Root-NFS: Unable to get mountd port number from server, using default
    EXPORT_SYMBOL是什么?
    用maven建立一个工程2
  • 原文地址:https://www.cnblogs.com/LionelMessi/p/4311931.html
Copyright © 2020-2023  润新知