摘要:
C#提供了一个lock关键字,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,C# lock关键字定义如下:lock(expression) statement_blockexpression代表你希望跟踪的对象,通常是对象引用。◆如果你想保护一个类的实例,一般地,你可以使用this;◆如果你想保护一个静态变量(如互斥代码段在一个静态方法内部),一般使用类名就可以了。而statement_block就是互斥段的代码,这段代码在一个时刻内只可能被一个线程执行。下面是一个使用C# lock关键字的典型例子,在 阅读全文
摘要:
一:这里介绍C#内部类能够使用外部类定义的类型和静态方法,但是不能直接使用外部类的实例方法,直接看来,外部类对于内部类的作用更像是一个命名空间。C#语言有很多值得学习的地方,这里我们主要介绍C#内部类,包括介绍instance方法和private方法等方面。C#内部类能够使用外部类定义的类型和静态方法,但是不能直接使用外部类的实例方法,直接看来,外部类对于内部类的作用更像是一个命名空间,在C#中,始终可以用(只要访问控制允许)Sys.Model.Key key = new Model.Key();来创建一个内部类的实例,这个实例与外部类的任何实例没有任何直接的关系。类似于Java中的静态内部类 阅读全文
摘要:
这次在工作之余用C#写了一个简单的贪吃蛇程序,一般的都是WinForm形式的,这次弄了个控制台版本的,因为C# Console全部都是输入输出流,要在CMD窗口做这种有前台UI界面的程序应该是不适合的,但是想起之前的DOS版本的系统,我觉得应该是可以做到了,所以就花了几个晚上弄了这么一个东西,先上个截图:界面比较简单,一个CMD窗口,其他的就是由字符构成的各种形状,做这种Console的贪吃蛇有以下几个需要注意的地方:1.理解Console这个东西,它是一个标准的I/O输入输出流;2.控制台有2个术语 :屏幕缓冲区和控制台窗口,我们一般获取的大小是控制台大小而不是缓冲区大小,这个可以看看MSD 阅读全文
摘要:
创建型结构型行为型类Factory MethodAdapter_ClassInterpreterTemplate Method 对象Abstract FactoryBuilderPrototypeSingleton Adapter_ObjectBridgeCompositeDecoratorFacadeFlyweightProxy Chain of ResponsibilityCommandIteratorMediatorMementoObserverStateStrategyVisitor 概览 名称Factory Method结构意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。F 阅读全文