實值型別和參考型別是.net裡面的一個基本概念在面試的時候也經常遇到關於這個概念有很多誤解,經常聽到下面的說法1.兩者的區別是實值型別分配在堆棧上,參考型別分配在堆上 這句話不對,至少不準確2.實值型別效能更好, 這句話要考慮情況 先補充一些背景資料常見的實值型別有:大部分原生類型,例如int float long 各種自己定義的結構體等等常見的參考型別有:string 各種Class 數組(包括int[]這種的)堆棧:在這裡指的是執行堆棧堆:在這裡指的是託管堆,就是LOH+G0+G1+G2
最近園子裡好多人談到了招聘面試,特別是多線程這個問題出現了很多次;多線程也是我在面試中很喜歡問的一個題目,和大家分享一下(僅限.net) 為什麼喜歡在面試中問這個問題 因為這是一個很好的瞭解面試者知識深度的問題,在現代CPU都是多核的背景下,多線程作為一種能充分發揮CPU資源的技術使用的越來越廣泛. 而且這個問題可以把普通的應用開發人員(增刪改查)和有一定技術深度/專研精神的人區分出來 (此外:沒吃過豬肉好歹要見過豬跑吧,沒見過豬跑...這個就有點詭異了) 背景:
昨天有個朋友在評論的時候問我如下代碼在web開發中有什麼問題public void Log(string msg){System.IO.File.AppendAllText(Server.MapPath("~/log.txt"), msg);}這裡能說的點太多了....只好新開一個文章來說,而且也只是選重點的說 功能1.線程不安全 asp.net是原生的多線程的架構,那麼日誌類必須是多安全執行緒的, 該類庫內部使用了File類來附加日誌,而這個部分不是安全執行緒的,這裡有一個BUG
現在社會比前幾年浮躁了,越來越多的人抱怨薪水低,高薪工作不好找;誠然這有CPI的壓力,可是也有很多人沒有認清自己的職業發展.很多.net程式員個各種糾結,想拿高薪又拿不到,想提高又不知道怎麼能提高.我也經曆過這樣的階段.......各種糾結和迷茫,各種悲劇......不知道路在何方,在此我把我的經驗和看法分享給大家,希望能給大家一點協助.(本文只代表我的個人觀點) 關於職業/薪水瓶頸的問題:(在本文中,我們假設薪水就是能力的真實體現,不考慮運氣等因素,並且薪水以上海為標準,其他城市乘以相對比例)
for (int i = 0; i<=GridView1.Rows.Count - 1; i++) { DataRowView dv = ds.Tables[0].DefaultView[i]; lbl = (Label)GridView1.Rows[i].FindControl("Label1"); if (lbl.Text.Trim() == "1")
private void WriteSortID(string CategoryID,string picid, string pos, string url, string pictureurl) { string url1 = Server.MapPath("~/xml/" + CategoryID + ".xml"); try { XmlDocument xmlDoc = new XmlDocument();
功能一:背景: 編程中經常有這個需求,要在兩個非常類似的實體類中,拷貝同名屬性的值,(例如在WCF實體和EF實體中的拷貝...) 以往一般有兩個方案 1.寫入程式碼:執行效率很高,不過要寫很多重複的代碼, 2.反射: 靈活,不過效率非常低 這裡提供一個靈活性不比反射差的解決方案 https://github.com/xwj90/Clover.Copyer使用代碼非常簡單,如下所示, 只有一句話 //範例一 在兩個對象直接拷貝屬性 ClassA
最近在做Facebook Tab & App的開發.想分享一些基本的文檔和概念給大家;希望可以協助大家瞭解Facebook中一些基本的概念, 資源和初步開發入門.Facebook已經成為一個重要的公司宣傳平台,活動和廣告平台,還有豐富的應用和遊戲. Facebook Tab & App DevelopmentWhat is Tabhttps://developers.facebook.com/docs/appsonfacebook/pagetabs/Maximum width
解決方案和思路類: 設計和策略: 1.有一個網站的中購買功能, 假設現在有很多使用者(假設10000人)在搶購一個物品,該物品的庫存只有10個,請問怎麼設計一個系統支援這樣的情境 2.一個使用者中心,儲存使用者名稱密碼和其他基本資料, 你會怎樣設計?(儘可能好,考慮安全,效能,擴充,高可用等等..) 3.前端(HTML
switch case是一種.net裡面常用的條件分支語句,挺好用的;不過有些缺點:1.在有包含大量條件和執行語句的時候代碼結構會很亂。2.不太符合面對對象的設計原則。3.對於查詢條件是否滿足一定範圍這樣的邏輯不太好用。 將其轉為條件驅動的實現,(本例使用Dictionary+Delegate的方式)View Code class SwitchTest {/// <summary>/// 常規寫法/// </summary>/// <param
一般稍微大一點規模的網站上線前都要做一下安全性測試。(Penetration Test) 安全性測試一般包括以下幾個步驟: 1.選擇一系列安全問題點,分析測試的可行性.(選擇幾個需要進行測試的問題,例如SQL注入)2.定位系統缺陷,並在其中找出高風險性的部分.(一般使用自動化工具)3.定位那些可能存在的,
HFSoft.ReportBases.PrintDocument print = new HFSoft.ReportBases.PrintDocument(); HFSoft.ReportBases.RowItem row; HFSoft.ReportBases.CellItem cell; row = print.Heard.CreateItem(); cell = row.Cells.CreateCell("a", "業績ID");
最近在設計一個分布式的key-value系統的時候中,出於效能和儲存空間的考慮,準備把string類型的key替換為它的HashCode值.GetHashCode這個方法可能很多人都有所瞭解,不熟悉的可以看看這裡:http://msdn.microsoft.com/zh-cn/library/system.object.gethashcode.aspx以下資訊只限於String.GetHashCode,其他的例如Object.GetHashCode根據其他對象的實現不同而不同:1.對於不同的物件
今天是國慶日,因為英明偉大21cn世紀家園建設國家、愛護百姓的功績罄竹難書,所以放假一天,爸爸媽媽特地帶我們到動物園玩。 按照慣例,我們早餐喜歡吃地瓜粥。今天因為地瓜沒有了,媽媽只好黔驢技窮地削些芋頭來濫竽充數。沒想到那些種在陽台的芋頭很好吃,全家都貪得無厭地自食其果。
已知一個拍好序的數組,長度為M在其中找兩個數,其和為N 剛剛拿到這個題目的時候,首先的常規想法是遍曆迴圈求出所有數的和,最終其值為N的就是結果,這個演算法時間複雜度為o(N*N)可能還有一些擴充的想法,那就是先把數組中比N大的元素去掉,這樣少檢查幾個元素這是典型的程式員思維,太早開始考慮實現細節了作為一個演算法題目首先要把演算法複雜度降低下來,然後再考慮常數C。。。不要太早開始考慮這種相對不重要的問題 由於要尋找的是一個數對,假設這裡存在解的話,考慮用N減去數組中的每一個值產生一個新數組M2,假
什麼是Sessionless Web Application Session相信大部分朋友都聽說過,不使用Session的程式就是Sessionless, (注意,只是不用Session,並不代表不用Cookies,當然我們也要儘可能的少依賴cookis) 為什麼Sessionless
實際報表列印可能需要同時寫入表格類型資料和報表主題、時間、單位等內容,因此需要同時處理單一零散資料和有規則的表格式資料。通過改寫InsertBlemDatatoBookmark方法,可以做到。(相關內容參考以前隨筆) 方法全文如下:(包括說明) 參數:FileName--報表範本檔案名稱 savefilename--報表產生後另存檔案名稱 dt-報表的表格式資料 has-報表的零散資料 introw-報表表格式資料表格頭所在模板行 public
三、draw.css body { font-size:12px;}.dbutton1{ border:none; width:60px; height:21px; background:url(../project/drawimage/draw_line.jpg); cursor:hand;}.dbutton2{ border:none; width:60px; height:21px;
類是C#中最重要的一個概念,也是最難表述的一個概念 1.類的職責一定要清晰 不要設計超級類 盡量精簡這條其實比較難準確的表述,更多的是要靠設計人員的經驗; 2.如果類中不存在執行個體成員,那麼將類設計為static的 3.如果可以,將類設計為sealed的 效能, 調用可能的虛方法對效能是有損失 防止意外的行為,
/*----------------繪圖尺寸輸入地區--------------------*///直線的輸入地區顯示function inputarea_line(){ document.all.inputarea.innerHTML="<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">"+ "<tr><td class=\"dtd1\">起點</td>"+