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的權限?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM