-
Jul072013
[C#] 浏览文件夹对话框
更新: .NET 提供了 System.Windows.Forms.FolderBrowserDialog 类,来完成“浏览文件夹”对话框的功能,可直接使用。不必使用本文中的方法。 原文: 我们知道,C#里面有选择文件的对话框控件,却没有选择文件夹的对话框控件。不少人为了选择一个文件夹只好自己用 TreeView 类来处理,其实在C#里面完全不用那么麻烦,我们可以用C#的 System.Windows.Forms.Design 名称空间下的 FolderNameEdit...阅读全文3条评论
-
Jul042013
[C#] as 和 is 运算符以及安全的类型强制转换讨论
根据 MSDN 的说明:由于对象是多态的,因此基类类型的变量可以保存派生类型。若要访问派生类型的方法,需要将值强制转换回该派生类型。不过,在这些情况下,如果只尝试进行简单的强制转换,会导致引发 InvalidCastException 的风险。鉴于这个过程是不安全的,因此需要用 try - catch 语句块来进行保护,例如比较安全的代码方式应该如下所示: [code language="csharp"] // 有一object类型的...阅读全文
-
Jul032013
[TFS] 禁止默认允许多人签出和强制解除签入签出锁
使用 Visual Studio 2010 Team Foundation Server 进行源代码编辑时,可以对代码实施以下三种锁定之一: Unchanged - Keep any existing lock Check Out - Prevent other users from checking out and checking in Check In - Allow other users to check out but prevent them from checking in 貌似这个“签出”和“签入”锁的概念很类似于数据库中的“排他锁(独占锁,X)”和“共享锁(S)”...阅读全文
-
Jul012013
[C#] struct错误:无法修改“…”的返回值,因为它不是变量
今天师妹调试程序时,出现了编译错误 CS1612 Cannot modify the return value of ‘expression‘ because it is not a variable 无法修改“expression”的返回值,因为它不是变量 出现这种错误的最常见情况是使用了如下的赋值语句: AnObject.AnStruct.Vaule = xxx; 以如下的程序为例,初一看似乎没什么问题,实际上根本无法编译。 [code language="csharp"] public struct Rectangle { pri...阅读全文
-
Jul012013
[C#] new修饰符和override修饰符的区别
我们都知道new关键字可以作为运算符来创建对象,但其另一个常用的用法是作为修饰符来隐藏基类中被继承的成员。 根据MSDN的解释: 在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。 隐藏继承的成员时,该成员的派生版本将替换基类版本。 虽然不使用 new 修饰符也可以隐藏成员,但会生成警告。 如果使用 new 显式隐藏成员,则会取消此警告,并记录要替换为派生版本这一事实。当然,...阅读全文
-
Jun192013
用C#进行Office应用程序开发(基础)
近期有项目要用 C# 生成 Word 格式的报告,通过网络查找到很多内容,大部分比较凌乱,于是自己决定将具体的步骤总结整理出来,以便于更好的学习和交流。 这篇文章只讲述最基本的程序集引用等,以 Word 为例,方法对 Excel, Visio 等是类似的。 一、各 Office 的名称和版本 名称 版本 Office 2003 11 Office 2007 12 Office 2010 14 Office 2013 15 二...阅读全文
-
Jun122013
-
May092013
x64平台上 Microsoft.Jet.Ole.DB.4.0 provider is not registered 错误解决
现象: 在32位开发环境下编译的桌面或者ASP.NET应用程序部署到64位的Windows系统下,如果应用程序使用OleDb去访问Access数据库. 会出现了如下错误信息: See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.InvalidOperationException: The 'Microsoft.Jet.OLEDB...阅读全文
-
Dec182012
使用Magic Packet进行网络唤醒(WOL)
现在几乎所有的电脑都支持从网络唤醒,这意味着你可以通过网络控制远程一台计算机开机。 目前,远程唤醒数据包的发送,大多使用AMD公司的Magic Packet。Magic Packet虽然只是AMD公司所开发的一项技术,但是受到了几乎所有网卡制造商的支持,因此,大多数流行网卡都能与之很好地兼容。最常使用的工具是Magic Packet Utility 1.00.005。 使用WOL需要被唤醒机满足以下条件: 使用ATX电源; ...阅读全文
-
Aug242012