国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

幾個C#編程的小技巧 (二)

2024-07-21 02:18:40
字體:
供稿:網(wǎng)友
一、判斷文件或文件夾是否存在
使用system.io.file,要檢查一個文件是否存在非常簡單:
bool exist = system.io.file.exists(filename);

如果需要判斷目錄(文件夾)是否存在,可以使用system.io.directory:
bool exist = system.io.directory.exists(foldername);

二、使用delegate類型設(shè)計自定義事件
在c#編程中,除了method和property,任何class都可以有自己的事件(event)。定義和使用自定義事件的步驟如下:
(1)在class之外定義一個delegate類型,用于確定事件程序的接口
(2)在class內(nèi)部,聲明一個public event變量,類型為上一步驟定義的delegate類型
(3)在某個method或者property內(nèi)部某處,觸發(fā)事件
(4)client程序中使用+=操作符指定事件處理程序


例子: // 定義delegate類型,約束事件程序的參數(shù)
public delegate void myeventhandler(object sender, long linenumber) ;

public class dataimports
{
// 定義新事件newlineread
public event myeventhandler newlineread ;

public void importdata()
{
long i = 0 ; // 事件參數(shù)
while()
{
i++ ;
// 觸發(fā)事件
if( newlineread != null ) newlineread(this, i);
//...
}
//...
}
//...
}

// 以下為client代碼

private void callmethod()
{
// 聲明class變量,不需要withevents
private dataimports _da = null;
// 指定事件處理程序
_da.newlineread += new myeventhandler(this.da_enternewline) ;
// 調(diào)用class方法,途中會觸發(fā)事件
_da.importdata();
}
// 事件處理程序
private void da_enternewline(object sender, long linenumber)
{
// ...
}


三、ip與主機名解析
使用system.net可以實現(xiàn)與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();
}





發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 金平| 灵丘县| 吴江市| 浪卡子县| 嫩江县| 红河县| 大余县| 平凉市| 高安市| 新建县| 太和县| 南靖县| 宜阳县| 海林市| 集贤县| 襄垣县| 华亭县| 射阳县| 萨迦县| 怀宁县| 庆阳市| 涞源县| 剑阁县| 出国| 河津市| 昔阳县| 云林县| 彰武县| 黄山市| 扬中市| 南皮县| 苍溪县| 大同县| 八宿县| 衡阳市| 潼关县| 淮北市| 桐柏县| 茂名市| 台南县| 资中县|