原创 C#8.0 中開啓默認接口實現方法

這篇文章主要介紹了C#8.0 中開啓默認接口實現方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧的相關資料 當你升級到 C# 8.0 和 .NET Core 3.0 之後,你就可以開

原创 出於遷移項目的考慮,GitHub 中 Fork 出來的項目,如何與原項目斷開 Fork 關係?

如果需要爲 GitHub 上的項目做貢獻,我們通常會 Fork 到自己的名稱空間下。在推送代碼之後添加 pull request 時,GitHub 會自動爲我們跨倉庫建立 pull request 的連接,非常方便。但是,如果 Fork 是

原创 謹慎使用 FileInfo.Exists 實例方法,而是使用 File.Exists 靜態方法替代

如果你在代碼中使用了 FileInfo.Exists 實例方法來判斷一個文件是否存在,也許會發現此方法可能錯誤地判斷來一個文件是否真的存在。這是一個坑。 本文將介紹坑的原因,並提供填坑的辦法。   本文內容 問題代碼 原因分析 解

原创 .NET 中使用 Mutex 進行跨越進程邊界的同步

Mutex 是 Mutual Exclusion 的縮寫,是互斥鎖,用於防止兩個線程同時對計算機上的同一個資源進行訪問。不過相比於其他互斥的方式,Mutex 能夠跨越線程邊界。   本文內容 Mutex 是什麼? 簡單的 Mute

原创 自然碼的形碼

使用拼音/雙拼輸入法,如果你的打字速度還需要繼續提升,那麼就不應該再不斷地看着候選框打字了。使用雙拼形碼可以規避相當多字詞的選字。 本文整理自然碼的形碼,然後附帶一張我自己製作的自然碼形碼的鍵盤圖。 本文內容輸入法的選擇自然碼的形碼鍵盤圖

原创 UWP 在 WebView 中執行 JavaScript 代碼(用於模擬用戶輸入等)

UWP 中使用 WebView 時可以在網頁中額外執行一些代碼。於是你幾乎可以在網頁上做任何事情,那些你可以在瀏覽器控制檯中做的事情。 本文將介紹做法。 本文內容準備環境執行 JavaScript 代碼模擬用戶輸入JavaScript e

原创 爲什麼我們不應該使用微信或者 QQ 作爲團隊協作的 IM 工具?

如果你的團隊沒有覺得微信是低效的團隊 IM 工具,那只有兩種可能: 團隊成員很少使用微信進行私人的生活和娛樂。 你就是一個低效的團隊,而且還不自知。 本文內容微信,連接一切每個人都有微信微信,低成本的溝通方式不間斷的交叉消息干擾不止是

原创 Slack 開發入門之 Incoming Webhooks:往 Slack 的 Channel 中發消息

一個工程師團隊使用 Slack 進行團隊協作比 QQ / 微信流的效率高多啦。除了基本的 IM 之外,它的擴展性也是非常重要的一點。 本文介紹 Slack 的開發入門:Incoming Webhooks 篇。   本文內容 創建一

原创 只需 5 秒鐘,你就能取到 WPF 程序的超高分辨率超高清截圖

我想要截取一個 WPF 程序的圖標,但是它太小了。如果我就這樣截屏截下來,是很不高清的。由於我需要製作一份課件,所以我需要超高清版本,可是,如何做才能最快速拿到 WPF 程序的超高清截圖呢? 本文分享一個方法,只需 5 秒鐘,你就能拿到!

原创 .NET 中什麼樣的類是可使用 await 異步等待的?

  我們已經知道 Task 是可等待的,但是去看看 Task 類的實現,幾乎找不到哪個基類、接口或者方法屬性能夠告訴我們與 await 相關。 而本文將探索什麼樣的類是可使用 await 異步等待的? Dixin’s Blog - Und

原创 編寫 Target 檢測 MSBuild / dotnet build 此次編譯是否是差量編譯

  MSBuild 或 Roslyn 編譯項目時均支持差量編譯,畢竟爲了性能。我在 每次都要重新編譯?太慢!讓跨平臺的 MSBuild/dotnet build 的 Target 支持差量編譯 一文中介紹瞭如何使一個 Target 支持差量

原创 定義一組抽象的 Awaiter 的實現接口,你下次寫自己的 await 可等待對象時將更加方便

  我在幾篇文章中都說到了在 .NET 中自己實現 Awaiter 情況。async / await 寫異步代碼用起來真的很爽,就像寫同步一樣。然而實現 Awaiter 沒有現成的接口,它需要你按照編譯器的要求爲你的類型添加一些具有特定名稱

原创 將基於 .NET Framework 的 WPF 項目遷移到基於 .NET Core 3

  在 Connect(); 2018 大會上,微軟發佈了 .NET Core 3 Preview,以及基於 .NET Core 3 的 WPF;同時還發布了 Visual Studio 2019 預覽版。你可以基於 .NET Core 3

原创 .NET 中使用 TaskCompletionSource 作爲線程同步互斥或異步操作的事件

  你可以使用臨界區(Critical Section)、互斥量(Mutex)、信號量(Semaphores)和事件(Event)來處理線程同步。然而,在編寫一些異步處理函數,尤其是還有 async 和 await 使用的時候,還有一些更方

原创 .NET 除了用 Task 之外,如何自己寫一個可以 await 的對象?

  .NET 中的 async / await 寫異步代碼用起來真的很爽,就像寫同步一樣。我們可以在各種各樣的異步代碼中看到 Task 返回值,這樣大家便可以使用 await 等待這個方法。不過,有時需要寫一些特別的異步方法,這時需要自己來