上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要: 非null值表示和C#的用法一样。Nullable a = 1;null值的表示:Nullable a = Nullable(); 阅读全文
posted @ 2014-01-21 22:29 self.refactoring 阅读(504) 评论(0) 推荐(0) 编辑
摘要: System.Timer.Timer 根据命名空间看这个类貌似才是标准的Timer,它提供Interval属性和Elapsed事件。可以每隔一个时间周期触发一次Elapsed事件。在ThreadPool的线程中回调事件处理函数。 该类也提供对UI线程的支持,可能通过将UI元素设置为SynchronizingObject属性(ISynchronizeInvoke类型,因此只能支持WinForm)... 阅读全文
posted @ 2013-12-10 22:50 self.refactoring 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 记得第一次看到MarkupExtension是在几年前的一次面试中。很不好意思说,当时不知道是什么东东。最近在项目中又用到了WPF的这个功能,决定在博客里记录一下。 在Xaml中为某个对象以Attribute的方式设置对象的属性时,attribute的值默认只能是字符串。例如: 上面为Text属性设置值"Text"。如果属性的类型为String(如上面代码中的Text属性),这是没有问题... 阅读全文
posted @ 2013-12-07 22:40 self.refactoring 阅读(4006) 评论(1) 推荐(3) 编辑
摘要: 在Xaml中定义某种类型的一个element就相当于构造了一个此类型的对象。如:但是这个对象如何去访问?类似于CLR中在栈中存放对象在堆中的地址,然后将该栈的地址命名以便对象访问。x:Name是为在xaml中定义的对象赋予一个唯一标识的名字,方便其它代码访问。而FrameworkElement.Name属性是为所有FrameworkElemet派生类提供的与x:Name等效的更简便的方式。 阅读全文
posted @ 2013-11-23 23:06 self.refactoring 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 1. xaml中直接映射为prefixxmlns:prefix="clr-namespace:MyApplication.Modules.Entity;assembly=MyAssembly".2.通过XmlnsDefinitionAttribute在Assembly源码中定义:在Assembly的AssemblyInfo.cs中添加assembly level的attribute将clr namespace映射为xml namespace.[assembly:XmlnsDefinition("http://mynamespace.codelife.com&quo 阅读全文
posted @ 2013-11-23 22:17 self.refactoring 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 名称说明Add将两个值相加并将结果推送到计算堆栈上。Add.Ovf将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。Add.Ovf.Un将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。And计算两个值的按位“与”并将结果推送到计算堆栈上。Arglist返回指向当前方法的参数列表的非托管指针。Beq如果两个值相等,则将控制转移到目标指令。Beq.S如果两个值相等,则将控制转移到目标指令(短格式)。Bge如果第一个值大于或等于第二个值,则将控制转移到目标指令。Bge.S如果第一个值大于或等于第二个值,则将控制转移到目标指令(短格式)。Bge.Un当比较无符号整数值或不可排 阅读全文
posted @ 2013-10-20 19:39 self.refactoring 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 首先通过WindowInteropHelper类,我们可以获取WPF Window的Handle.WindowInteropHelper helper = new WindowInteropHelper(window);IntPtr handle = helper.Handle;然后,我们使用Handle可以创建一个HwndSource对象,HwndSource对象为我们提供了接口能够注册窗口消息的处理程序。HwndSource hwndSource = HwndSource.FromHandle(handle);hwndSource.AddHook(new HwndSourceHook(Ho 阅读全文
posted @ 2013-09-28 22:53 self.refactoring 阅读(5923) 评论(0) 推荐(0) 编辑
摘要: 自从开始系统学习CLR via C#以来,看到CLR的什么功能总想深入了解内部是如何实现的。研究枚举时也不例外。首先看一下枚举的庐山真面目:定义一个如下的枚举:public enum Colors:ushort{ Red, Blue, Green}注意:此处的:ushort并不是描述一个继承关系。它是用来描述该枚举所采用的基础类型为ushort. 让我们再来看一下编译器生成的代码:其实经过编译器处理之后,这个枚举变成了一个继承自System.Enum的类。我们定义的每一个枚举元素变成了这个类中的一个公有,静态的常量。而它们的类型则是之前通过:ushor... 阅读全文
posted @ 2013-01-18 17:23 self.refactoring 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 字符串这个东西我想所有人从接触程序开始应该就开始了解。但是在CLR中,仍然有一些东西我了解得并不清楚。 字符串的留用 我们经常在代码中定义一些常量字符串,有时候在多个地方定义的常量字符串是一样的。或者在我们的程序中定义了很多的string对象,这些对象里保存的字符串值都是一样的。 在CLR中String对象是不可变的,那么如果内存中有大量的值相同的String对象,是对内存的一种浪费。 其... 阅读全文
posted @ 2013-01-18 11:00 self.refactoring 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 接口就是将一些相关联的动作集合在一起形成一个契约,然后让类可以去实现这些契约。接口中定义的都是动作(方法相关:比如属性,方法,事件)的签名,没有实现接口中定义的成员都是Public的(因为是对外公布的契约)接口的名字一般用I开头,以标识其为接口 而对于实现了特定接口的类必须实现接口中定义的所有动作 内存模型看一下当类实现了一个接口时,CLR内部的内存布局是怎么样的。以如下实例为例:在运行时,CLR中会生成如下数据结构:调用模型这样子的话如果我作如下调用:MessageHandler messageHandler = new MessageHandler();messageHandler.Di. 阅读全文
posted @ 2013-01-11 16:29 self.refactoring 阅读(233) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页