C#进阶
Jacob Ni
工业自动化 工业4.0 智能制造 自动化测试 nihang1212@126.com
展开
-
Dictionary<>的用法
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DictionaryUsage{ internal class Program { pr原创 2017-01-04 12:51:24 · 445 阅读 · 0 评论 -
c# 如何在类(class)和结构体(struct)之间做选择
原文c# 如何在类(class)和结构体(struct)之间做选择所有的框架设计者面临的一个基本的设计决定是设计一个类类型(引用类型)还是一个结构体类型(值类型)。深入理解引用类型和值类型在行为上的不同对做出选择是至关重要的。 我们要考虑的引用类型和值类型的第一个不同之处在于,引用类型是分配到堆上的并且能够垃圾回收,而值类型是分配到栈上的或者在包含它的类型中呈串联的,并且当栈释放或者包含结构体的翻译 2017-12-01 10:07:31 · 3187 阅读 · 0 评论 -
根据字符串调用同名函数
需求:在工作中遇到某一部分代码是通过另一款软件导出来的,在实际的项目部署中,这部分代码会经常变动,那么类名和函数名就会不确定,在核心代码部分就很难灵活应对。于是,利用C#的反射方法,实现了一个dll封装,可以把要执行的方法放到配置文件里,实现动态调用。具体实现:代码封装using System;using System.Collections.Generic;using System.IO;u原创 2017-08-25 15:04:58 · 578 阅读 · 0 评论 -
C# 把函数作为实参传递给作为形参的委托
C# 把函数作为实参传递给作为形参的委托函数可以直接用来实例化该类型的委托,也能传递给该类型的作形参的委托。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 把方法传给委托类型的形参{ class Program { stati原创 2017-02-24 13:26:49 · 1603 阅读 · 0 评论 -
C# 扩展方法
C# 扩展方法扩展方法能给类添加方法,但是不改变原来类的任何内容。原来的类也不需要任何编译的过程using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 扩展方法{ class Program { static void Main(st原创 2017-02-24 13:12:41 · 219 阅读 · 0 评论 -
C# .NET内置委托
C# .NET内置委托C#委托Action、Action、Func、PredicateCLR环境中给我们内置了几个常用委托Action、 Action<T>、Func<T>、Predicate<T>,一般我们要用到委托的时候,尽量不要自己再定义一 个委托了,就用系统内置的这几个已经能够满足大部分的需求,且让代码符合规范。一、Action Action封装的方法没有参数也没有返回值,声明原型为:pu转载 2017-02-22 16:40:42 · 948 阅读 · 0 评论 -
C# 匿名方法
C# 匿名方法我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。 匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。 在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。编写匿名方法的语法匿名方法是通过使用 delegate 关键字创建委托实转载 2017-02-22 13:18:03 · 301 阅读 · 0 评论 -
C# 委托(Delegate)
C# 委托(Delegate)C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。 委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。声明委托(Delegate)委托声明决定了可由该委托引用的方法。委托可指向转载 2017-02-22 13:04:31 · 365 阅读 · 0 评论 -
C#交互过程中内存释放的方法
C#交互过程中内存释放的方法C#进行平台调用时总共有三种内存释放方法:1.CoTaskMemFree释放非托管内存 当非托管函数采用COM的内存分配方法CoTaskMemAlloc来分配内存,应该使用该方法来释放内存,该方法也是.net默认的对非托管内存的内存释放方法。 2.delete方法 在C++的非托管函数中用new方法来分配内存是要用该方法来释放内存,释放内存的托管函数要在非托管的程序原创 2016-12-16 14:29:00 · 2420 阅读 · 0 评论 -
C# 字符串格式化
在C#中格式化字符串简介在编写C#程序的过程中经常需要输出特定格式的字符串,因此要对需要输出的对象进行格式化。正文每个对象都有一个ToString方法用来返回这个对象的字符创形式的呈现。ToString方法能接收一个字符串参数,告诉对象怎样格式化它自己。 String.Format的调用中,格式化字符串放在后面的位置,例如“{0:##}”。大括号里的文本是{index[,alignment][:fo翻译 2017-01-12 12:39:50 · 674 阅读 · 0 评论 -
C# foreach使用
C# foreach使用当集合实现 IEnumerable<T>接口时,可以使用foreach循环处理改集合中的内容。原理using System;namespace 遍历{ internal class Program { private static void Main() { var numbers=new[]{1,2,原创 2017-02-07 12:07:40 · 391 阅读 · 0 评论 -
C# 实现List实例中实例元素的排序
C# 实现List实例中实例元素的排序实现List实例中元素的排序除了有一下两种较好的实现途径:使需要排序的类实现IComparable<T>接口;创建需要排序的类的一个实现ICompare<T>接口的新类,将新类的实例传入到List.Sort(newOject)方法中。代码示例:实现IComparable接口方式using System;using System.Collections原创 2017-02-06 15:28:31 · 1724 阅读 · 0 评论 -
C# ADO.NET之SQL Server数据库操作
C# ADO.NET之SQL Server数据库操作.NET数据提供程序中的组件 对象 用途 Connection 提供对数据源的连接 Command 用于访问数据库,以返回和修改数据,运行存储过程,发送或获取参数信息 DataReader 提供一个来自该数据源的高性能的只读数据流 DataAdapter 提供DataSet对象和数据源之间的桥接器针对SQL原创 2017-12-04 10:40:50 · 677 阅读 · 0 评论