随笔分类 - C#编程飘逸的语法
this is a crazy world,crazy coding making everything possible.
摘要:对于第一个问题主要是想验证在基于任务的异步模式 (TAP),await所等待的任务是在主线程执行下面的代码之后再来执行可等待的任务还是先执行可等待的任务再来执行主线程下的其他代码: 测试这个问题主要用如下调试代码 1 static async Task Main(string[] args) 2 {
阅读全文
摘要:数组的大小是固定的,如果元素个数是动态的,就应使用集合类,集合可以根据集合类实现的接口组合为列表、集合和字典,集合实现的常用接口有如下 (1)IEnumerable<T>:如果将foreach语句用于集合,就需要IEnumerable接口,这个接口定义了方法GetEnumerator(),它返回了一
阅读全文
摘要:在C#中string关键字的映射实际上指向.NET基类System.String。System.String是一个功能非常强大且用途非常广泛的基类,所以我们在用C#string的时候实际就是在用.NET Framework String。String上是一个不可变的数据类型,一旦对字符串对象进行了初
阅读全文
摘要:事件是基于委托,为委托提供了一种发布/订阅机制,在dotNet到处都能看到事件,一个简单的例子就是在windows应用程序中,Button类提供了Click事件,这类事件就是委托,触发Click事件时调用的处理程序方法需要定义,其参数也是由委托类型定义的,事件模型可以用下图简要说明。 在这个模型中,
阅读全文
摘要:运算符重载的关键是在对象上不能总是只调用方法或属性,有时还需要做一些其他工作,例如,对数值进行相加、相乘或逻辑操作。假定已经定义了一个表示数学矩阵的类,定义矩阵的相加和相乘就必须用到运算符重载,在许多情况下,重载运算符允许生成可读性更高、更直观的代码。 定义一个结构Vector包含成员字段、构造函数
阅读全文
摘要:在foreach语句中使用枚举,可以迭代数组或集合中的元素,且无须知道集合中的元素的个数。如图显示了调用foreach方法的客户端和集合之间的关系。数组或集合实现带GetEnumerator()方法的IEnumerable接口。GetEnumerator()方法返回一个实现lEnumerable接口
阅读全文
摘要:.NET很容易把值类型转换为引用类型,所以可以在需要对象的任意地方使用值类型。例如int可以赋予一个对象,从值类型转换为引用类型称为装箱。如果方法需要把一个对象作为参数,同时传递一个值类型,装箱操作就会自动进行。另一方面,装箱的值类型可以使用拆箱操作转换为值类型。 定义一个一般的、非泛型的简化链表类
阅读全文
摘要:继承能够定义可重用、扩展或修改父类行为的子类。但基类的静态构造函数、实例构造函数和析构函数不能被派生类继承。 在下面实例中,定义一个基类Publication用于表示任何类型的出版物以及派生至Publication的其他类型Book类,由此也可以扩展为定义其他类型如:Magazine、Journal
阅读全文
摘要:一、类 类中的数据和函数称为类的成员 数据成员是包含类的数据 字段、常量和事件的成员。数据成员可以是静态数据、类成员总是实例成员,除非用static进行显示的声明。 事件是类的成员,在发生某些行为(如改变类的字段或属性,或者进行了某种形式的用户交互操作)时,他可以让对象通知调用方,调用方可以包含所谓
阅读全文
摘要:一、变量 C#共有其中变量类型有:静态变量、实类变量、数组元素、数值参数、引用参数、输出参数和局部变量 先定义一个简单的类来说明,如下: 对于静态变量在被创建加载之后失效,当被卸载后失效,静态变量的初始值也为此类型的变量的默认值 对于实例变量当创建某类的一个实例的时候,隶属于该类的实例变量也被生成,
阅读全文
摘要:一、公共语言运行库 .NET Framework 的核心是其运行库执行环境,称为Common Language Run,通常在CLR控制下运行的代码称为托管代码(由GC进行资源管理和回收),还有一部分是非托管代码包括的文件操作的句柄、对数据库资源进行访问的链接和网络链接,对非托管资源的管理有两种方法
阅读全文
摘要:定义实体类型: 定义两个实体Menu和MenuCard,一个menu关联一个menucard,menucard包含对所有menu的引用。 创建数据上下文,新建类MenuContext派生于基类DbContext,使用模型构建器定义各个字段的约束和各表之间的级联关系,需要引用EntityFramewo
阅读全文
摘要:用命令对象调用存储过程,就是定义存储过程的名字,给过程的每一个参数添加参数定义,然后再用SqlCommand命令执行。 下面实例主要以数据库Region表中插入更新的存储过程。 首先给项目添加一个资源文件命名为Strings,在添加存储过程语句: 在App.config文件里面配置数据库连接语句:
阅读全文
摘要:XPath是XML的查询语言,其内容相当复杂。可以查阅www.w3.org/TR/xpath。 下面以一个实例简单了解一线XPath的查询方法: 主要实现根据输入内容检索xmlnode
阅读全文
摘要:委托的实现,就是编译器自行定义了一个类:有三个重要参数1.制定操作对象,2.指定委托方法3.委托链 看如下一个列子: 调用
阅读全文
摘要:主要用到CreateElement、CreateTextNode、CreateComment、AppendChild、InsertAfter方法 代码如下:
阅读全文
摘要:用于操作Xml的文档主要有XmlNode、XmlDocument、XmlComment、XmlElement、XmlAttribute、XmlText、XmlNodeList 下面用一段代码来具体说明怎么操作Xml文件的:
阅读全文
摘要:利用FileSystemWatcher类对文件的写、重命名、新建进行监控以及执行触发的事件,并记录对文件进行了什么操作。 代码如下:
阅读全文
摘要:最近在做一个关于图形统计的界面,主要用到的是Dev控件ChartControl(功能很强大,能解决基本和复杂图形统计问题)。 ChartControl主要有Diagram、Series、Legend三个重要属性 diagram主要是用来控制图形X、Y、Z轴显示的样式和是否允许旋转以及旋转的角度和绕那
阅读全文
摘要:C#提供三种序列化的方法,与此有关的三个类分别是:BinarySerialize、SoapSerialize、XmlSerialize 以二进制的序列化和反序列化为例,先创建一个实体类Product。 1 [Serializable] 2 public class Product 3 { 4 pub
阅读全文
浙公网安备 33010602011771号