.NET
RedRiver331
这个作者很懒,什么都没留下…
展开
-
何时使用委托而不使用接口
委托和接口都允许类设计器分离类型声明和实现。给定的接口可由任何类或结构继承和实现;可以为任何类中的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?在以下情况中使用委托: 当使用事件设计模式时。 当封装静态方法可转载 2006-07-01 21:39:00 · 1910 阅读 · 0 评论 -
time_t到.NET的转换
方法1:public DateTime UNIXtoDateTime(long seconds) { double secs = Convert.ToDouble(seconds); DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(secs); return System.TimeZone.CurrentTimeZone.T转载 2006-07-02 11:39:00 · 2301 阅读 · 0 评论 -
对 Windows 窗体控件进行线程安全调用
访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。.NET Framework 有助于在以非线程安全方式访问控件时检测到这一问题。在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一转载 2006-07-06 10:39:00 · 1637 阅读 · 0 评论 -
How to call c++ exported method and classes in c#
相对于C++来说,C#是个newcomer,C#提供了一些非常cool的功能,使得我们的工作更加容易。但是,在这个组件横行的年代,如果不懂利用别人写好的代码,就有点落伍了。在C++横行江湖的日子里,留下了很多功能强大的代码,探讨如何在C#的程序中使用这些代码是非常有趣也很有意义的事情,这也是我们今天这篇文章的主题。 C#是managed code,而C++不是,他们之间的几种交互方式可以用下图表转载 2006-08-02 11:44:00 · 4848 阅读 · 0 评论 -
反射与属性
反射与属性反射是编程的读取与类型相关联的元数据的行为,通过元数据,你能了解它是什么类型以及它是由什么构成的(方法、属性、基类).反射服务在system.Reflection命名空间中定义,它在和属性一起使用时最有用。属性是一种向类型添加信息并影响类型行为的方法。反射还允许在运行期间定义新类型,并生成相应的IL代码和元数据(使用在System.Reflection.Emit命名转载 2007-08-28 11:30:00 · 1733 阅读 · 0 评论 -
异常规范
异常增强了API的一致性。如果使用异常,那么报告错误的方式是固顶的,从而保证了API的一致性想在面向对象框架中统一使用返回值来报告错误是不可能的,在这种情况下,唯一的选择是使用返回值之外的错误报告方法,比如异常使用异常使得对于开发人员处理错误的位置更加灵活更容易使错误处理局部化错误码很容易被忽略,而且通常都被忽略异常可以包含丰富的信息来对错误的原因加以描述异常允许用户定义未转载 2007-08-31 10:48:00 · 1332 阅读 · 0 评论