随笔分类 - C#
摘要:Here is a simple demo by using delegate. Class SurroundingClass Public Delegate Sub Entrust() Private Shared Sub Main(ByVal args As String()) Dim call
阅读全文
摘要:强引用是指向内存申请一段存储空间,进行存储的引用类型的对象的引用,如下创建一个强引用, 在对象获得的分配内存空间中不仅仅存放了对象的信息,还存放着该对象被引用的次数。在创建一个强引用时,默认的引用次数为 1,之后每引用一次加 1, 此时,对象 obj 的引用次数为 2。相反,对对象进行弱引用并不会增
阅读全文
摘要:(通过直接更新DataGridView中的数据) 以下代码实现使用DataTable更新数据库中的表的操作: 其中,SqlCommandBuilder是用来自动生成添加、删除、修改的语句,注意参数是之前创建的SqlDataAdapter。
阅读全文
摘要:public static DataTable ConvertDataReaderToDataTable(SqlDataReader reader) { try { DataTable objDataTable = new DataTable(); int intFieldCount = reade
阅读全文
摘要:You can implement reading data from excel and then modifying the json string. The specific implementation code is as follows: private void Submit_Clic
阅读全文
摘要:In order to get the count of "Word" process, you can refer to the steps as follow. First, you need to use "System.Runtime.InteropServices", then add .
阅读全文
摘要:AppOne: using System; using System.Net; using System.Net.Sockets; using System.Text; namespace AppOne { class Program { static void Main(string[] args
阅读全文
摘要:1.垃圾回收机制 1.1 GC简介 C#和Java一样是一种系统自动回收释放资源的语言,在C#环境中通过 GC(Garbage Collect)进行系统资源回收,在数据基本类型中介绍到,C#数据类型分为引用类型和值类型, 值类型保存在Stack上,随着函数的执行作用域执行完毕而自动出栈,所以这一类型
阅读全文
摘要:1.前言 在 Visual C# 中,你可以通过以下方式为代码创建文档(///):将特殊注释字段中的 XML 元素包含在源代码中注释引用的代码块的前面,例如: 使用 /doc 选项进行编译时,编译器会在源代码中搜索所有 XML 标记,并创建一个 XML 文档文件。 若要基于编译器生成的文件创建最终文
阅读全文
摘要:1.前言 在使用 LINQ 查询的过程中存在着两种查询方式,一种是立即执行,另一种是延迟执行。下面将主要讲解 LINQ 的特殊支持——延迟执行。 2.延迟执行 延迟执行意味着,他们不是在查询创建的时候执行,而是在使用 foreach 语句遍历的时候执行(换句话说,当 GetEnumerator 的
阅读全文
摘要:1.Action Action<>委托可以拥有n个参数(0-16),无返回值。 class Program { static void Method1() { Console.WriteLine("without any parameter"); } static void Method2(int
阅读全文
摘要:1.概要 2 .NET数据提供程序 3.连接字符串 4.Connection对象 5.数据库连接池 6.Command对象与数据检索 7.Command对象高级应用 8.理解DataAdapter 1.概要 1.1 ADO.NET是什么 ADO.NET是一组允许.NET开发人员使用标准的,结构化的,
阅读全文
摘要:1.前言 泛型(Generic)的优点主要体现在提升性能和类型安全两方面,下面将对这两点进行分析。 2.提升性能 通过编写一个使用 .NET 类库中 ArrayList 集合类的小程序,可体现出使用非泛型集合类的局限。 ArrayList 类的实例可以存储任何引用或值类型。 System.Colle
阅读全文
摘要:1.前言 根据维基百科的定义,协变与逆变是在计算机科学中,描述具有父/子型别关系的多个型别通过型别构造器、构造出的多个复杂型别之间是否有父/子型别关系的用语。 初次看定义一定是一头雾水,不知道协变逆变的具体规则与实现是什么,下面我将会通过几个例子来解释什么叫做协变,什么叫做逆变。 2.协变逆变的简单
阅读全文
摘要:1.前言 在编写程序时,往往需要比较多种声明或算法的性能,这可以通过查看程序的 IL 代码分析比较其过程及步骤的方式实现。 在编译使用 .NET Framework 库代码时,不是立即创建专用于操作系统的本机代码,而是把代码编译为通用中间语言(Common Intermediate Language
阅读全文
摘要:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。 创建扩展方法的先决条件如下,扩展方法必须定义在一个非嵌套、非泛型的静态类中,扩展方法必须声明为静态,扩展发放至少拥有一个参数(
阅读全文
摘要:1.base关键字 首先看一个代码实例: 其输出结果如下: 由输出结果可以发现当创建派生类的实例时,首先会默认调用基类的默认构造函数,而后调用派生类中的构造函数。现对以上代码中的 DerivedClass 类做如下改变,添加 base 关键字: 此时的输出结果如下所示: 由输出结果可以发现,派生类在
阅读全文
摘要:1.装箱与拆箱 装箱是指将值类型(如 int ,或自定义的值类型等)转换成 object 或者接口类型的一个过程。当 CLR 对值类型进行装箱时,会将该值包装为 System.Object 类型,再将包装后的对象存储在堆上。 拆箱就是从对象中提取对应的值类型的一个过程。装拆箱其实就是值类型和引用类型
阅读全文
摘要:1.前言 C# 中存在三种形式的类型声明字段,使得字段可以接受多种类型的数据,它们分别是 var,object 以及 dynamic。下面的内容将对这三种的差异进行讲解分析。 首先,由于 C# 是强类型语言,所以编译器会在编译期间就会执行类型检查。 2.var 在一般情况下,定义特定类型时使用的是显
阅读全文