随笔分类 - C#
摘要:1: Ctrl + Enter (在光标指定位置的上面添加一行,并将光标移至新添加行的行首位置) Ctrl + Shift + Enter (在光标指定位置的下面添加一行,并将光标移至新添加行的行首位置)2:Ctrl + Shift + L (删除当前行)3:Ctrl + M + O (折叠所有的函数) Ctrl + M + P (展开所有的函数)4:Ctrl + E + C (注释) Ctrl + K + C (注释) Ctrl + E + U (取消注释) Ctrl + K + U (取消注释)5:Tab (增加缩进) Shift + Tab (减少缩进)6:Ctrl ...
阅读全文
摘要:前台的字符串传递到后台进行处理,发现了一个较诡异的问题:字符串中的一个空格(ASCII:32)被UTF-8编码之后变成了一个诡异的字符(ASCII:194 和 160的组合)!但在后台其表象还是空格。 在UTF-8编码里面存在一个特殊的字符,其编码是“0xC2 0xA0”,转换成字符的时候表现为一个半角空格,跟一般的半角空格(ASCII 0x20)不同的是它的宽度不会被压缩,所以排版中常能用到它。但是GB2312、Unicode之类并没有这样的字符,所以转换后前台会显示为“?”号,只是显示为问号而不是真正的问号,所以无法被替换! 对这两个看似相同的字符串进行一下转换可以确认:原始的字符...
阅读全文
摘要:Ø 发送邮件所用的核心知识点 微软封装好的MailMessage类:主要处理发送邮件的内容(如:收发人地址、标题、主体、图片等等) 微软封装好的SmtpClient类:主要处理用smtp方式发送此邮件的配置信息(如:邮件服务器、发送端口号、验证方式等等) SmtpClient主要进行了三层的封装:Socket --> TcpClient --> SmtpClientØ 具体代码请看如下所示:using System;using System.Collections.Generic;using System.Linq;using System.Text;using
阅读全文
摘要:使用XPathExpression可以对xml文件内容的节点按照某一个属性列进行排序
阅读全文
摘要:C#中的父类与子类的继承关系与C和C++中的类似,这里先阐述最重要的一点:假如子类继承了父类,那么子类可以强制转换为父类,并且保证编译和运行都不出错;但是父类强制转换成子类的时候,编译可以通过运行通不过。请看如下代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace FatherAndSon{ class ClassA { static void Main(string[] args) { //编...
阅读全文
摘要:用如下方法可以保证应用程序只运行一个实例。添加引用usingSystem.Reflection;usingSystem.Runtime.InteropServices;usingSystem.Diagnostics;调用DLL文件[DllImport("User32.dll")]privatestaticexternboolShowWindowAsync(IntPtrhWnd,intcmdShow);[DllImport("User32.dll")]privatestaticexternboolSetForegroundWindow(IntPtrhWnd
阅读全文
摘要:C# 用WMI(Windows Management Instrumentation)方法区分系统是64位还是32位。
阅读全文
摘要:C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息);本文的主要模块为:① :生成xml文件② :遍历xml文件的节点信息③ :修改xml文件的节点信息④ :向xml文件添加节点信息⑤ :删除指定xml文件的节点信息
阅读全文
摘要:C# 实现对XML的基本操作(创建xml文件,增、删、改、查 xml节点信息) XML文件在存储、交换和传输数据信息上有着很方便处理,那么今天这篇文章主要讲一下用C#如何实现对XML文件的基本操作,如:创建xml文件,增、删、改、查xml的节点信息。所使用的方法很基础,方便易懂。 本文的主要模块为:① :生成xml文件② :遍历xml文件的节点信息③ :修改xml文件的节点信息④ :向xml文件添加节点信息⑤ :删除指定xml文件的节点信息
阅读全文
摘要:【C# 32位程序访问64位系统注册表】:要实现32位程序访问64位注册表信息,还要知道如下概念:1:文件系统转向。2:注册表重定向(转向)。3:注册表反射。通过:关闭64位(文件系统)的操作转向-->获得操作Key值的句柄-->关闭注册表转向(禁止特定项的注册表反射)-->获取访问的Key值-->打开注册表转向(开启特定项的注册表反射)-->开启64位(文件系统)的操作转向。这个流程完成32位程序对64位注册表信息的访问。核心方法为文中的public static string Get64BitRegistryKey(string parentKeyName, string subKeyName, string keyName)
阅读全文
摘要:【C# 32位程序与64位程序读\写注册表的区别】:为了防止注册表键冲突,64位机器注册表信息分成了两个部分。一部分是专门给64位系统(即:64位程序)访问的,另一部分是专门给32位系统(即:32位程序)访问的,放在Wow6432Node下面。因此:X64(Any Cpu)Platform下的程序会操作64位机器存放注册表位置的注册表信息,X86 Platform下的程序会操作32位机器存放注册表位置的注册表信息(即:WOW6432Node节点下的注册表信息)
阅读全文
摘要:在C#中实现“引用传递”的两种方式为:ref 和 out。他们的不同之处在于①:使用ref关键字进行“引用传递”时,传入的实参必须先被初始化,而是用out的时候则不用。②使用out关键字进行“引用传递”时,在离开该函数之前必须完成参数的初始化③即:ref有出有进,out有出没进。他们的相同之处在于:①使用ref和out进行“引用传递”,在定义方法和调用方法时,都要在参数前加ref和out关键字,以满足匹配。②由于属性是方法,不是变量;而指针是变量。所以属性都不可以作为ref和out参数传递。
阅读全文