• 2021年最新 C# .net 面试题,月薪20K+中高级/架构师必看(九)


    201、简述 private、 protected、 public、 internal 修饰符的访问权限

    private : 私有成员, 在类的内部才可以访问。
    protected : 保护成员,该类内部和继承类中可以访问。
    public : 公共成员,完全公开,没有访问限制。 
    internal: 当前程序集内可以访问。

    202、属性和public字段的区别是什么?调用set方法为一个属性设值,然后用get方法读取出来的值一定是set进去的值吗?

    属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置。虽然一般情况下get读取的值就是set设置的值,但是可以让get读取的值不是set设置的值的,极端的例子。Public Age{get{return 100;}set{}}。加分的补充回答:用reflector反编译可以看出,属性内部本质上就是set_***、get_***方法

        class Person

        {

            public int Age

            {

                get

                {

                    return 3;

                }

                set

                {

                }

            }

        }

                Person p1 = new Person();

                p1.Age = 30;

                p1.Age++;

                Console.Write(p1.Age);//输出3

    必须手写掌握的代码(既包含拿电脑写,拿笔写):

    1. 手写三层架构
    2. 手写冒泡排序
    3. 手写AJAX:XMLHttpRequest
    4. 手写增删改查、SQLHelper

    203、关于三层架构

    通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等每层之间是一种垂直的关系。三层结构是N层结构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。

    优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。

    缺点: 增加成本。

    204、说说在软件设计中你遇到的以空间换时间的例子?

    参考回答:谈Cache(缓存)、索引这些例子。用额外的磁盘、内存空间的消耗来提高执行速度。Lucene.Net也是一个例子。

    205、asp.net中的错误机制。(常考)

    参考:

    定制错误页来将显示一个友好的报错页面。

    页面中未捕获一样会触发Page_Error(不常用),应用程序中的未捕获异常会触发Application_Error。通过HttpContext.Current.Server.GetLastError()、HttpContext.Current.Error;拿到未捕捉异常,记录到Log4Net日志中。

    206、介绍几个使用过的开源的项目

    Lucien.net、NPOI、JQuery、ASP.Net AJAX  toolkit、Quartz.Net、JqueryUI、ASP.Net MVC。在CodePlex、SourceForge等网站上有更多的开源项目

    207、数据访问通过aspx页面和DB层会很慢,有什么解决方法

    (1)浏览器使用缓存;(2)使用压缩的JS和CSS(3)减少发送HTTP请求的次数;(4)后台,对于一些不经常变化的数据进行Cache;(5)对可能的低效率的SQL语句进行优化;(6)进行服务器负载均衡

    208、关于网络结构

    209、关于反向代理

    210、如何搭建一个大型网站架构,需要考虑哪些因素?

    211、C#中的扩展方法是什么?

    212、什么是局部类?

    213、【软件架构】SOLID代表什么?它的原理是什么?

    214、【软件架构】KISS原则是什么意思?

    215、【设计模式】“编程为接口而不是实现”是什么意思?

    216、【DevOps】持续集成,持续交付和持续部署之间有什么区别?

    217、【软件架构】什么是故障转移?

    218、【软件架构】系统的ACID属性是什么?

    219、【设计模式】解释下内聚和耦合?

    220、SOLID是设计模式吗?

    否,设计模式是针对软件编程中常见问题的可重用解决方案,而SOLID是一组原则,我们可以称其为准则,它使我们可以创建一个系统,在该系统中,每个零件都将松散地连接到其他零件上。

    221、什么是CQRS设计模式?

    https://www.cnblogs.com/daxnet/archive/2011/01/06/1929099.html

    222、什么是算法?

    223、你所了解的敏捷开发是什么?它跟瀑布式有什么区别?

    224、在LINQ中,IEnumerable接口与IQueryable有何不同?

    https://www.cnblogs.com/liuqiyun/p/8507356.html

    225、Git跟SVN有什么区别,如何设置Git的权限?

    作者: 王春天
    出处: http://www.cnblogs.com/spring_wang/
    Email: spring_best@yeah.net
    QQ交流:903639067 
    QQ群:322581894 关于作者: 大连天翼信息科技有限公司 技术总监。 SNF快速开发平台 创始人。应用平台架构师、IT规划咨询专家、业务流程设计专家。 专注于快速开发平台的开发、代码生成器。同时专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,精通DotNet系列技术Vue、.NetCore、MVC、Webapi、C#、WinForm等,DB(SqlServer、Oracle等)技术,移动端开发。熟悉Java、VB及PB开发语言。在面向对象、面向服务以及数据库领域有一定的造诣。现从事项目实施、开发、架构等工作。并从事用友软件产品U8、U9、PLM 客开工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。
  • 相关阅读:
    leetcode — simplify-path
    leetcode — climbing-stairs
    leetcode — sqrtx
    leetcode — text-justification
    leetcode — add-binary
    leetcode — plus-one
    leetcode — valid-number
    leetcode — minimum-path-sum
    leetcode — unique-paths-ii
    四维偏序 CDQ套CDQ
  • 原文地址:https://www.cnblogs.com/spring_wang/p/14548463.html
Copyright © 2020-2023  润新知