木子屋 Dnawo's BLOG

分类:Web编程

共 944 篇

C#读取WinRAR安装路径

using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string args) { Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.…

C#字段和属性的区别

在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,属性中包含两个块:set和get,set块负责属性的写入工作,get块负责属性的读取工作。在两个块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值。当缺少其中一块时属性就只能读或只能写,set和get块中属性必需有一个,因为即不能读又不能写的属性是没有意义的。 从例子中可看到属性其实就是对私有字段的读取和写入,以便做些公有字段无法完成的任务,他的使用方式和公有字段完全一样,所以可以理解成属性是为了满足对公有字段的特殊需求而产生的附属品。因而当我们选择使用属性还是使用字段时,主要看需求,如果不需设置访问权限、不需在赋值时检测值是否满足要求、不需要在赋值时修改对象其他一些状态等特殊的需求时,使用公有字段即可,否则就使用属性。

C#保存远程文件到本地

/// <summary> /// 保存远程文件到本地 /// </summary> /// <param name="url">远程文件URL</param> /// <param name="file">保存的本地路径</param> /// <returns></returns> public bool DownloadFile(string url, string file) { try { (new System.Net.WebClient()).DownloadFile(url,file); return true;…

彻底解决ASP.NET MD5加密中文结果和ASP不一致的问题

当要进行MD5加密的字符串不含中文时,那么ASP.NET的加密结果和ASP是一致的: ASP.NET: ASP: 当要进行MD5加密的字符串含中文时,两者的加密结果就不一致了: ASP.NET: ASP: 我们知道,ASP.NET默认使用utf-8编码格式,而ASP使用的是gb2312编码格式,正是由于这编码格式不同,才导致了两者对中文加密结果的不同。下边我们看看怎么让ASP.NET的编码结果和ASP一样,那也就意味着要让ASP.NET采用gb2312编码格式,这点FormsAuthentication.HashPasswordForStoringInConfigFile()方法是办不到的,我们得使用System.Security.Cryptography.MD5CryptoServiceProvider对象的ComputeHash方法来进行加密:…

C#使用EventLog类操作系统日志

我们先了解下系统日志的一些概念,如下图示: 写入系统日志时必需指定事件源,再由系统判断该事件源注册在哪个日志下,最后在该日志下增加一条事件。使用EventLog类很容易就能新增一条事件: 下边创建一个日志"自定义事件",并将abc事件源注册到"自定义事件",最后新增一条事件:

C# params关键字

每个C#函数都允许有个参数带params关键字,在调用的时候可以不给他传值,也可以给他传值,还可以给他传多个值,例子如下: 注意事项: ·一个函数中只能一个参数带params关键字; ·带params关键字的参数必须是最后一个参数; ·带params关键字的参数类型必须是一维数组;

ASP.NET生成条形码

/// <summary> /// 条形码生成 /// </summary> /// <param name="strTemp">要生成条形码的文本</param> /// <param name="height">每个_和|的高度</param> /// <param name="width">每个_和|的宽度</param> /// <param name="showstrTemp">是否显示文本</param> /// <example>Response.Write(CreateBarCode("6911989251236", 50, 1, true));…

类库生成dll后丢失注释解决方法

将自己编写的一个类库生成dll,并在其他项目中引用,无论是鼠标移到成员上还是转到定义都没有了注释,注释全丢失了,最后解决方法如下: 打开类库属性,切换到生成选项卡,在输出项目中钩选"XML 文档文件"。 重新引用dll,将鼠标移到成员上能看到注释了,但转到定义时仍是空白

抽象类和接口、抽象方法和虚方法的比较

抽象类和接口都不能被实例化,这是他们最大的共同点,但他们还有很大的不同,简单说明如下: ·抽象类中只有抽象成员不包含实现部分,接口所有成员都不包含实现部分; ·抽象类的派生类只需实现其抽象成员,接口的派生类要实现其所有成员; 可以把抽象类看作是接口和普通类的混合体,他的抽象成员类似接口成员,他的非抽象成员和普通类成员一样。 抽象方法和虚方法也非常容易把人弄糊涂,下边也说下他们的一些区别: ·抽象方法使用关键字abstract,虚方法使用关键字virtual; ·抽象方法必须在抽象类中,虚方法不用; ·抽象方法没有实现体,虚方法有实现体; ·抽象方法必须在派生类中override,派生类可以选择是否override虚方法;