摘要: 看了这一系列的争吵,对于一个初学者来说,是挺困惑的。要不要学C#呢?到底要掌握什么样的语言呢?没有绝对好的,只有适合自己的才是最好的。每个语言都有它自己的优劣点,这个毋容置疑。其实firelong也没有直接全盘否定C#的意思,主要只是在强调微软在.net上做了很多不太实用的特性,导致.net平台越来越大,越来越难以推广。要知道中国这样的网络下一个100多M的平台是件不容易的事情。当然微软后面很聪明... 阅读全文
posted @ 2010-06-23 17:25 类型安全的心 阅读(622) 评论(3) 推荐(2) 编辑
摘要: 在用powershell运行脚本调用WMI远程启动机器的时候碰到的: "The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)" error may occurs when deploying VNC to a remote computer or when using built-in management too... 阅读全文
posted @ 2010-06-18 10:16 类型安全的心 阅读(3626) 评论(0) 推荐(0) 编辑
摘要: 主题 签名和执行策略简短说明 描述 Windows PowerShell 执行策略,以及如何使用和更改它们。详细说明 PowerShell 执行策略通过确定 PowerShell 加载配置文件和运行脚本的条件,为脚本环境提供安全性。 默认设置为最安全的策略“Restricted”。该设置允许运行单个命令,但不允许运行脚本。 如果执行策略不允许 PowerShell 加载文件... 阅读全文
posted @ 2010-06-12 11:42 类型安全的心 阅读(7365) 评论(0) 推荐(0) 编辑
摘要: 从《为.Net程序集添加资源》和《浅析.Net下的AppDomain编程》两篇文章中我们知道,.Net结构里的程序集Assembly是自我描述的安装单元,它在应用程序域(AppDomain)中运行。您必须首先将程序集加载到应用程序域中,然后才能运行该应用程序,并且,同一程序集可以加载到多个应用程序域中,根据这些应用程序域对该程序集代码使用方式的不同产生了程序集的分类:私有程序集和共享程序集。 1... 阅读全文
posted @ 2010-06-11 10:18 类型安全的心 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 反射是一种晚绑定,它可以被开发者用来设计出更具灵活性的代码,而代价则是花费更多的系统资源开销使得应用程序可以在运行时获取一些未知信息。 说白了,在编写代码的时候,开发者可能还不知道或不能确定一些对象的信息,于是把决定权交给代码本身,将来在需要的时候由代码自己去获取和判断这些信息并作出相应的反应。这样的方式固然可以使代码更加灵活,但在想要使用反射的时候,必须先考虑好在性能与灵活之间的一个权衡,不能盲... 阅读全文
posted @ 2010-06-08 17:08 类型安全的心 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托 1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,... 阅读全文
posted @ 2010-06-08 16:47 类型安全的心 阅读(875) 评论(0) 推荐(0) 编辑
摘要: 首先在VS2010里建立一个windows程序,只带有一个button1。点击button1,出现一个messagebox展示Hello, world!程序。我相信这个程序大家都会的。 下面是源代码 Form1.Designer.csFor1.cs主要关注这几行代码上面的第一行代码是给button1.click事件订阅一个button1_click方法。这里的this.button1.Click... 阅读全文
posted @ 2010-06-08 14:34 类型安全的心 阅读(5368) 评论(0) 推荐(1) 编辑
摘要: 原文地址:http://www.ubosm.com/Article/ShowArticle.asp?ArticleID=460 由於小朱與BillChung的啟發,想寫一個故事,讓大家了解如何調用 Button.Click 事件,而故事的好壞,由看戲的客官去評判,假如說的不好,請不要罵太兇,因為我只是個寫程式菜鳥,並不是說書的 二、故事開始 有一天,有個人叫小歐,看到路上有台車 ( button... 阅读全文
posted @ 2010-06-08 10:47 类型安全的心 阅读(3095) 评论(0) 推荐(0) 编辑
摘要: 今天看了博客园听雨轩讲解的一篇关于事件和委托的例子。文章的地址在下面 http://www.cnblogs.com/finesite/articles/255884.html 这篇文章写的很不错。读完后,也说说我的感想: 首先说说事件的编写。对于一个事件编写,会涉及以下几个方面: 定义一个事件 触发一个事件 定义事件的方法 订阅事件,退订事件 定义事件 事件就是一个委托变量,所以形成如下:... 阅读全文
posted @ 2010-06-07 16:31 类型安全的心 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 虽然C#里面使用指针会导致无法通过CLR的内存类型安全检查,也会使代码难以编写和调试,但是使用指针可以起到向后兼容,以及加强性能的作用。 C#里面,当你要在一个代码块里使用指针的时候,需要使用unsafe关键字。任何方法,任何类,任何类成员都可以标记为unsafe。甚至一个方法中的一块代码也可以标记为unsafe.唯一需要注意的是,局部变量本身不能标记为unsafe. 这个就是说方法里面定义的变量... 阅读全文
posted @ 2010-06-04 17:34 类型安全的心 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 简单说,这个命令就是模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行 其使用格式为: object.SendKeys string "object":表示WshShell对象 "string":表示要发送的按键指令字符串,需要放在英文双引号中. 1.基本键 一般来说,要发送的按键指令都可以直接用该按键字符本身来表示,例如要发送字母"x",使用 WshShell.Se... 阅读全文
posted @ 2010-06-04 11:38 类型安全的心 阅读(2886) 评论(0) 推荐(1) 编辑
摘要: 正确调用Dispose(),同时把执行析构函数作为一种安全机制,以防没有调用Dispose().这段代码里面,Dispose()有第二个proteced重载方法,它带有一个bool参数,这是真正完成清理工作的方法。最后IDisposable.Dispose()包含一个对System.GC.SuppressFinalize()方法的调用。GC表示垃圾收集器,SuppressFinalize()方法则... 阅读全文
posted @ 2010-06-03 17:25 类型安全的心 阅读(479) 评论(0) 推荐(0) 编辑
摘要: “饭后漱口,早晚刷牙”这个有利于口腔卫生的好习惯相信不少人已经有了,但有许多人仍会问,为什么我的牙龈还常流血,为什么还有口臭?为什么龋齿还是得不到控制?这多半与没有掌握正确的刷牙方法有关。有关专家指出,我国城市中90%的人达不到有效刷牙,很大程度上是人们缺乏足够的口腔保健知识所致。这多少让人有些吃惊吧?原来自己在“瞎刷”。  刷牙的五大误区。  误区... 阅读全文
posted @ 2010-06-03 10:02 类型安全的心 阅读(9334) 评论(0) 推荐(0) 编辑
摘要: 在C#里面有2种机制来释放未托管资源: 声明一个析构函数(或终结器),作为类的一个成员 在类中执行System.IDisposable接口 析构函数 下面这段代码是一段带有析构函数的简单代码:在IL DASM中,你会发现并没有这个析构的方法。C#编译器在编译析构函数时,会隐式地把析构函数的代码编译为Finalize()方法的对应代码,确保执行父类的Finalize()方法 看下这段代码中对于析... 阅读全文
posted @ 2010-06-02 17:48 类型安全的心 阅读(1691) 评论(0) 推荐(0) 编辑
摘要: Net将整个系统的类型分成两大类 —— 值类型 和 引用类型。值类型是放在堆栈里的,而引用类型是放在内存堆里的。  大多数面向对象的语言都有两种类型:原类型(语言固有的类型,如整数、枚举)和类。虽然在实现模块化和实体化方面,面向对象技术体现了很强的能力,但是也存在一些问题,比如现在提到的这个系统类型问题,历史告诉我们两组类型造成了许多问题。首先就是兼容性问题,这个也是Mic... 阅读全文
posted @ 2010-06-02 11:46 类型安全的心 阅读(594) 评论(0) 推荐(1) 编辑
摘要: 这是一个关于数据字典使用的例子主要关注这里面的对于GetHashCode的重载的算法。这里GetHashCode使用的算法将数字向左移动16位,再与原来的数字进行异或操作,最后将结果乘以十六进制数15051505。散列码在整数取值区域上的分布相当均匀。 阅读全文
posted @ 2010-06-01 17:26 类型安全的心 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 如题,主要使用AsReadOnly这个方法就可以了 阅读全文
posted @ 2010-05-27 17:59 类型安全的心 阅读(1831) 评论(0) 推荐(0) 编辑
摘要: 数据库中的数字和编程语言中的数字有显著不同的特征,因为数据库中的数字可以为空,C#中的数字不能为空。Int32是一个结构,而结构是值类型的,所以它不能为空。在C#中可以使用Nullable<T>结构很容易解决这个问题。定义可空类型:可以检查Nullable<T>的HasValue和Value属性可空数据类型还可以使用算数运算符。变量x3是变量x1和x2的和。如果这2个可空变... 阅读全文
posted @ 2010-05-27 16:35 类型安全的心 阅读(877) 评论(1) 推荐(0) 编辑
摘要: 通过昨天的例子可以看到泛型类型实现IAccount接口的要求过于严厉。为了将Accumulate()方法改为泛型方法,还要去创建一个IAccount接口,然后让Account类继承IAccount接口,然后....杯具( ⊙ o ⊙ )啊! 在今天的例子中,我们可以创建独立于任何接口的泛型方法。这个就需要泛型委托机制来帮忙实现了。下面是修改后的泛型委托的例子郁闷了,编译有个错误:Error1) e... 阅读全文
posted @ 2010-05-27 11:10 类型安全的心 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 使用泛型可以定义接口,接口中的方法可以带泛型参数。下面是一个泛型接口的例子:对于一个Person类的实现:除了定义泛型类型之外,还可以定义泛型方法。 在泛型方法中,泛型类型用方法声明来定义。下面示例一个交换的泛型方法:泛型方法的调用,有两种方法:一, 把泛型类型赋予方法调用或者直接像非泛型方法那样调用, 这是因为C#编译器会通过调用Swap方法来获取参数的类型。下面的例子使用泛型方法累加集合中所有... 阅读全文
posted @ 2010-05-26 14:06 类型安全的心 阅读(2445) 评论(2) 推荐(2) 编辑