原创 DataGridView實現某列可編輯和ChecBox全選

環境舉例:通過Button按鈕,實現DataGridView中第一列(CheckBox)狀態爲是否全選,且DataGridView只有第一列可編輯,其他爲只讀。 注意:1、DataGridView某列可編輯的前提是DataGrid

原创 C# volatile關鍵字

本文僅爲個人參考衆多文章後的理解,如有錯誤請指正,紅色內容必看。 volatile使用: private volatile int intValue; private volatile List<string> strValues

原创 C# RabbitMQ使用

  本文章僅爲個人理解,如有錯誤請指正。 RabbitMQ安裝、說明、常用命令:https://blog.csdn.net/kang_xuan/article/details/90718878 RabbitMQ API: Nuget UI

原创 設計模式之中介者設計模式n

中介者設計模式的說明,不進行詳細介紹,重點放在代碼段 中介設計模式 定義一箇中介對象來封裝系列對象之間的交互。中介者使各個對象不需要顯示地相互引用,從而使其耦合性鬆散,而且可以獨立地改變他們之間的交互。   使用場合: 1.一組定義良好的

原创 單例模式的使用與說明

環境說明: 本方法不針對多線程。 1.在窗體應用程序中,很多的窗體只能也只需要出現一次,這就需要使用到單例模式。 2.當需要設置爲單例模式的窗體少量較少時,我們可以進行對窗體進行使用單例,但是過多時如何去實現單例。 理解說明:對象的創建

原创 值類型、引用類型和string詳解之一(共三)

僅爲個人理解,如有錯誤,請指正。。。。。     之一:說明引用類型與值類型     之二:說明值傳遞和引用傳遞     之三:講解string並對string常用函數進行說明。 string之所以拿出來說,是string具有不可變性,也

原创 C# 線程安全集合類

本文章僅爲個人理解,如有錯誤請指正。 從.Net 4.0框架開始,在System.Collections.Concurrent命名空間下,增加了用於多線程協同的併發集合類(線程安全集合)。 線程安全集合: 就是當多線程訪問時,採用了加鎖的

原创 C# Timer詳解

本文僅爲個人理解,如有錯誤請指正。 在C#中Timer類的定義有四個: System.Threading.Timer System.Windows.Forms.Timer:僅在.NetFramework中 System.Timers.Ti

原创 Redis Getbit和Setbit詳解

僅爲個人理解,如有錯誤,請指正。  說明:string數據類型可以直接存儲數字和字符串,存儲方式是以二進制方式進行存儲。             getbit和setbit是獲取和設置指定位置上的偏移量的位,也就是位置的bit值,bit值

原创 C#ListView詳解(三)

瞭解ListView的成員和簡單demo請查看詳解一和詳解二 Demo3: 拖放ListVIewItem實現重新排序 注意拖放的事件發生順序(講解一) Code: priv

原创 C# out、ref、params、可變參數、命名參數詳解

本文章僅爲個人學習總結,如有錯誤請指正,必須看demo3。 分別介紹五個參數修飾符的名稱、效果和使用、聲明、調用等情況: 參數順序:     out、ref、默認參數->可選參數->params 區分概念:     引用類型、值類型

原创 C# SQL Server的封裝(SQLDataAdapter等)之二(共二)

本文章僅是本人學習後總結,如有錯誤之處,請大家指正。 既然你看到這篇文章,說明最少懂,如果看完了還不懂。。。。。你怎麼不上天呢。。。 以下Demo均以SQL Server爲例說明。 七個DEMO分別說明以下情況 1.connect

原创 Graphics類及相關類詳解

如果發現有什麼錯誤地方,請指正,本文章僅僅是個人的瞭解和學習結果。 本文章介紹Graphics類的使用並通過demo進行了解,至於User32.Dll的使用在其他文章進行詳細介紹。 1.相關介紹。 2.屬性。 3.函數。 4.創建Gra

原创 C# Main函數

本文章是個人學習後的總結,如有錯誤請指正。 只有徹底瞭解,才能正確使用。 Main的創建: 當創建一個C#可執行應用程序(控制檯,Windows桌面程序或Windows服務)的時候,會自動創建一個Program類,該類

原创 C# Winfrom窗體之間傳值

有任何錯誤之處請多指正。 多個WinForm窗體之間需要進行數據的傳遞,如何進行傳遞,如何更好的進行傳遞。 窗體之間傳值有五種方式(重點說委託) 1.使用構造函數進行實例化時進行傳值(無demo); 2.使用Tag進行傳值(無demo);