文章分类 -  C#基础知识

摘要:学过C、C++、Java、C#等的人,一定对==有着深刻的认识。==左右两边相等,则返回布尔值true,否则,返回false。1==1返回True,1==2返回false。然而,事情并非一直是这样子简单的。例如,我们用以下代码定义的了一个Vector类:public class Vector { private double _x; public double X { get { return _x; } set { _x = value; } } private double _y; public double Y { get { return _y; } set { _y = value; 阅读全文
posted @ 2014-03-02 09:18 邹邹 阅读(409) 评论(0) 推荐(0)
摘要:.NET中的枚举我们一般有两种用法,一是表示唯一的元素序列,例如一周里的各天;还有就是用来表示多种复合的状态。这个时候一般需要为枚举加上[Flags]特性标记为位域,例如:[Flags] enum Styles{ ShowBorder = 1, //是否显示边框 ShowCaption = 2, //是否显示标题 ShowToolbox = 4 //是否显示工具箱 } 这样我们就可以用"或"运算符组合多个状态,例如myControl.Style = Styles.ShowBorder | Styles.ShowCaption; 这时myCon... 阅读全文
posted @ 2014-03-01 10:39 邹邹 阅读(170) 评论(0) 推荐(0)
摘要:一.委托(Delegate):一种引用方法类型。调用委托:调用方传递给委托的参数被传递给方法,来自方法的返回值(如果有)由委托返回给调用方。 public delegate void Del(string message); // Create a method for a delegate. public static void DelegateMethod(string message) { System.Console.WriteLine(message); } // Instantiate the delegate. Del handler = DelegateMethod; // . 阅读全文
posted @ 2014-02-25 09:08 邹邹 阅读(228) 评论(0) 推荐(0)
摘要:在基于Windows平台的程序设计中,事件(event)是一个很重要的概念。因为在几乎所有的Windows应用程序中,都会涉及大量的异步调用,比如响应点击按钮、处理Windows系统消息等,这些异步调用都需要通过事件的方式来完成。即使在下一代开发平台——.NET中也不例外。那么什么是事件呢?所谓事件,就是由某个对象发出的消息,这个消息标志着某个特定的行为发生了,或者某个特定的条件成立了。比如用户点击了鼠标、socket上有数据到达等。那个触发(raise)事件的对象称为事件的发送者(event sender),捕获并响应事件的对象称为事件的接收者(event receiver)。在这里,我们将 阅读全文
posted @ 2014-02-24 15:40 邹邹 阅读(277) 评论(0) 推荐(0)
摘要:最近在研究.NET分布式缓存代码,正好涉及Lock,看了网上的文章,总结了一些Lock相关的知识,供大家一起学习参考。一、Lock定义 lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。 在多线程中,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。 而在.NE 阅读全文
posted @ 2013-12-17 10:05 邹邹 阅读(169) 评论(0) 推荐(0)
摘要:C#默认提供了Pair、Triplet 、Tuple(4.0新增加的)这三个元组,在一些小的数据结构使用时,我们可以不用去声明相应的数据结构,而用这些元组来替代。public sealed class Pair { // Fields public object First; public object Second; // Methods public Pair() { } public Pair(object x, object y) { this.First = x; ... 阅读全文
posted @ 2013-12-17 09:31 邹邹 阅读(528) 评论(0) 推荐(0)
摘要:.NET 3.5在System.Collections.Generic命名空间中包含一个新的集合类:HashSet。这个集合类包含不重复项的无序列表。这种集合称为“集(set)”。集是一个保留字,所以该类有另一个名称HashSet。这个名称很容易理解,因为这个集合基于散列值,插入元素的操作非常快,不需要像List类那样重排集合。HashSet类提供的方法可以创建合集和交集。表10-12列出了改变集的值的方法。表 10-12HashSet的修改方法 说 明Add() 如果某元素不在集合中,Add()方法就把该元素添加到集合中。在其返回值Bool... 阅读全文
posted @ 2013-12-11 16:17 邹邹 阅读(1029) 评论(0) 推荐(0)