几个C#编程的小技巧 (二)

编程|技巧

一、判断文件或文件夹是否存在
使用System.IO.File,要检查一个文件是否存在非常简单:
bool exist = System.IO.File.Exists(fileName);

如果需要判断目录(文件夹)是否存在,可以使用System.IO.Directory:
bool exist = System.IO.Directory.Exists(folderName);

二、使用delegate类型设计自定义事件
在C#编程中,除了Method和Property,任何Class都可以有自己的事件(Event)。定义和使用自定义事件的步骤如下:
(1)在Class之外定义一个delegate类型,用于确定事件程序的接口
(2)在Class内部,声明一个public event变量,类型为上一步骤定义的delegate类型
(3)在某个Method或者Property内部某处,触发事件
(4)Client程序中使用+=操作符指定事件处理程序

例子: // 定义Delegate类型,约束事件程序的参数
public delegate void MyEventHandler(object sender, long lineNumber) ;

public class DataImports
{
// 定义新事件NewLineRead
public event MyEventHandler NewLineRead ;

public void ImportData()
{
long i = 0 ; // 事件参数
while()
{
i++ ;
// 触发事件
if( NewLineRead != null ) NewLineRead(this, i);
//...
}
//...
}
//...
}

// 以下为Client代码

private void CallMethod()
{
// 声明Class变量,不需要WithEvents
private DataImports _da = null;
// 指定事件处理程序
_da.NewLineRead += new MyEventHandler(this.DA_EnterNewLine) ;
// 调用Class方法,途中会触发事件
_da.ImportData();
}
// 事件处理程序
private void DA_EnterNewLine(object sender, long lineNumber)
{
// ...
}

三、IP与主机名解析
使用System.Net可以实现与Ping命令行类似的IP解析功能,例如将主机名解析为IP或者反过来: private string GetHostNameByIP(string ipAddress)
{
IPHostEntry hostInfo = Dns.GetHostByAddress(ipAddress);
return hostInfo.HostName;
}
private string GetIPByHostName(string hostName)
{
System.Net.IPHostEntry hostInfo = Dns.GetHostByName(hostName);
return hostInfo.AddressList[0].ToString();
}

时间: 2024-12-03 04:35:37

几个C#编程的小技巧 (二)的相关文章

七个C#编程的小技巧

编程|技巧 一.最小化窗口 点击"X"或"Alt+F4"时,最小化窗口,如:protected override void WndProc(ref Message m){const int WM_SYSCOMMAND = 0x0112;const int SC_CLOSE = 0xF060;if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE){// User clicked close b

几个C#编程的小技巧 (一)

编程|技巧 一.最小化窗口 点击"X"或"Alt+F4"时,最小化窗口,如:protected override void WndProc(ref Message m){const int WM_SYSCOMMAND = 0x0112;const int SC_CLOSE = 0xF060;if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE){// User clicked close b

ASP编程的一个小技巧

编程|技巧 仅仅是一个方便编程的小技巧.该技巧可以让你在你的任何一个asp页面中都可以使用文件adovbs.inc中定义的常数变量,这样你写出来的程序更加易读和美观,注意,该方法只适应与IIS4.0以上版本.那就是在你的global.asa文件中加入这样一句代码即可.<!-- METADATA TYPE="typelib" UUID="00000200-0000-0010-8000-00AA006D2EA4" NAME="ADO Type Libra

125个提升网页可用性的优化小技巧(四)

  往期回顾: <有图有案例!125个提升网页可用性的优化小技巧(一)> <有图有对比!125个提升网页可用性的优化小技巧(二)> <有图有案例!125个提升网页可用性的优化小技巧(三)> 尽可能兼顾不同用户的知识和技能水平 用户可能是新手.专家或介于两者之间,要根据用户情况设计界面. △ 使用适当的新人引导(四种主要的新人引导策略) 这四种用法刚好可以用一个2*2的矩阵来表示.根据下方图示选择最适合你界面的方式: △ 为新手用户添加提示而不干扰专家用户 △ 使用卡片分

125个提升网页可用性的优化小技巧(三)

  往期回顾: <有图有案例!125个提升网页可用性的优化小技巧(一)> <有图有对比!125个提升网页可用性的优化小技巧(二)> 除了引导用户,还要减少他们的认知流程,以保持流畅状态. 尽可能少让用户做计算 千万别把计算这种事情丢给用户,让计算机来处理. △ 显示剩余数量 在界面内体现用户当前所处位置 界面就像机场,如果没有"你在这里"的标记,用户会迷路,因此记得提供标记. △ 在导航菜单上突出当前所选 △ 在复杂的界面中提供面包屑导航或步骤图示 △ 在页面标

打造个性 傲游3.0 beta4小技巧

  符合主人个性的浏览器,才是最适用的浏览器.日前,傲游发布了3.0 Beta4版本.除了广受关注的鼠标手势自定义.多重搜索.开发者工具外,傲游3.0 还有很多个性功能.如果你想打造独特的浏览器,跟我来吧,一起去瞧瞧傲游3.0的"小技巧",相信会是你个性化需求的好帮手. 在这之前,我们需要创立一个傲游账户,成为傲游会员可以享受很多独特的服务.首先打开傲游浏览器,用鼠标左键单击左上角傲游Logo,再点击弹出的对话框右下的新建账户.在打开的注册界面里填写个人信息,点击注册即可. 注册成功后

C语言高效编程的几招小技巧

  这篇文章主要介绍了C语言高效编程的几招小技巧,本文讲解了以空间换时间.用数学方法解决问题以及使用位操作等编辑技巧,并给出若干方法和代码实例,需要的朋友可以参考下 引言: 编写高效简洁的C语言代码,是许多软件工程师追求的目标.本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教. 第1招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间. 例如:字符串的赋值. 方法A,通常的办法: 代

NetLogo编程的几个小技巧

NetLogo是一个用来对自然和社会现象进行仿真的可编程建模环境.NetLogo特别适合对随时间演化的复杂系统进行建模.建模人员能够向成百上千的独立运行的"主体"(agent)发出指令.这就使得探究微观层面上的个体行为与宏观模式之间的联系成为可能,这些宏观模式是由许多个体之间的交互涌现出来的.NetLogo足够简单,可以非常容易的进行仿真,或者创建自己的模型.并且它也足够先进,在许多领域都可以做为一个强大的研究工具. 更多了解请见http://ccl.northwestern.edu/

125个提升网页可用性的优化小技巧(二)

  第一期回顾:<有图有案例!125个提升网页可用性的优化小技巧(一)> 让常用功能和重要数据信息更接近用户 预测用户的意图,让他们尽可能接近目标. △ 筛选出或跳至用户正在搜索的条目 △ 将用户常选项目列为默认选项 △ 产品列表页上把重要数据信息展示出来 很多时候用户需要像踩弹簧高跷杖一样,点击一个产品,查看信息,返回上一页,再反复操作以查看其他产品.这种设计的可用性差.应把重要信息直接放在主要页面,减少用户反复操作的次数. 如果你怕这样页面会杂乱,也可以设计成鼠标悬停时显示(如下面这样)