淺談.NET的垃圾回收機制

這篇的由來其實很奇妙,前幾天在FB有人在討論某個資深工程師不懂method前面加上static的差異,下面一大串的炮火覺得也太不專業了。

直到前幾天群組有個朋友提出

『其實我真的不太敢確切的說static到底是怎麼運作的,他牽涉到記憶體行為,在執行階段有沒有static差在哪裡,記憶體是共用還是指向同一個部』

於是又拉了一長串的討論出來,討論出結果後催生了這篇文章

...繼續閱讀 »

我的程式開發原則

進入程式的行業也一年多了,雖然能力不到頂尖,對於CSS還有HTML的排版還是很不熟悉。

但在開發過程中看到許多不正確的開發觀念,進而產生許多程式碼的歷史包袱,尤其是這些包袱多數來自於「資深工程師」的觀念偏差時,實在令人感到遺憾...

 

在某次維護的過程,真的追Code追到跑去廁所吐,於是催生了這篇文章。

這篇文章會針對經常碰到的開發觀念撰寫,不會很艱深,我也沒有那個能力寫得很艱深 > O <

算是拋磚引玉,希望大家可以多參與討論,讓糟糕的程式碼不再禍害工程師。

 

我想...寫出優良的程式碼,是每個工程師應盡的義務。

 

...繼續閱讀 »

C#圖片處理

  在軟體的世界中,經常需要做圖片的處理,這次在圖片優化的過程中,遇到了一些問題,索性趁著年節將這些資訊一併記錄下來

這次紀錄的東西大約有如下

  • Image/Bitmap轉byte、byte轉Image/Bitmap
  • 圖片縮圖
  • 清除圖片資訊
  • PNG轉JPG背景透明
...繼續閱讀 »

Delegate、Action、Func的使用時機以及差異(委派型別階段總結)

  • 19169
  • 0
  • C♯
  • 2017-06-29

前面二篇(ActionFunc)我們大致上了解了怎麼在開後門,讓外部實做內部的程式碼,但是如果有多個參數的情形呢?

其實這會套用到泛型的概念,而這篇是早在第一篇就該說明了,之所以延到這篇再來講,是希望降低認識委派的門檻,畢竟泛型跟委派是二種不同的概念。

那我們現在來定義一下

Delegate是基底型別,而Func與Action則是.Net預先定義好Delegate型別,二者差異在於有無返回值罷了,應該對於Delegate有了初步的理解吧。

...繼續閱讀 »

Delegate、Action、Func的使用時機以及差異(Func篇)

  • 20059
  • 0
  • C♯
  • 2017-06-18

在上一篇文章中可以清楚的知道Action的用法,這篇再來看看Func怎麼寫囉。

那Func是什麼呢?

就是Action,但是 是會返回一個值的Action

 

如果分不清楚下列程式碼void跟string的差異,建議上一頁,這系列文章完全不適合現階段的你進行閱讀

        private void HelloVoid()
        {
        }

        private string HelloString()
        {
            return "HelloString";
        }

 

...繼續閱讀 »

Delegate、Action、Func的使用時機以及差異(Action篇)

  • 19394
  • 0
  • C♯
  • 2017-06-20

前陣子上了OOP的課程後,仍對委派一直不是很熟悉,但知道了Action以及Func的用途後後,也慢慢地感受到了委派使用的方式以及時機。我會先讓大家寫Action、Func,接著再來認識底層的Delegate是如何實作,相信能比較好上手。

什麼是Action?什麼是Fuck(Func)?

對於英文不好的我在初期看到Func真的只想說Fuck,這到底是什麼鬼呢?

...繼續閱讀 »

Thread was being aborted

今天在寫非同步時發生了一個問題,即是當我使用了非同步函式,而因為流程的問題並沒有執行到await的語句,反倒是先執行到了Response.Redirect("Lis.aspxt");

這時候就跳出錯誤訊息啦!

「Thread was being aborted」

 

...繼續閱讀 »

讀取Excel的好工具 LinqToExcel

數個月前使用者在詢問能不能匯出excel,於是上網找了資料後,便刻了匯出excel功能給他們,沒想到這只是噩夢的開始,幾周前又開始問我能不能用匯入的...

於是就找到了這個套件,讓我們一起來看看怎麼使用它吧

 

...繼續閱讀 »

列舉型別的資料對應

在寫程式時,多多少少都會寫一些列舉,可以讓程式更加的安全,但有些時候,列舉在變數命名時必須為英文,送到前端時則必須顯示成中文,要怎麼讓中英文產生關連呢?

可以參考以下的作法

...繼續閱讀 »