C 乙個簡單的定時表示式 HH mm ss 解析

2022-05-17 20:51:43 字數 1531 閱讀 6627

<

sysnormallong

>*:00:00

sysnormallong

>

private

string _sysnormallong = @"

*:00:00";

//////

正常播報時分秒

/// private

string

_normals;

private func _normalfuncs = new func[3

];  

//////

單項驗證

/// ///

///public func getvalidfunc(string

val)

}else

}//解析失敗,則按照整點播報的邏輯來做

returnt=>t==0;

}private

soundwarnthread()

主要方法為getvalidfunc。改方法為時分秒每個時間部分都生成乙個匿名的判斷函式,確保對配置項做一次解析,避免後期在驗證過程中不斷去分析配置字串,提公升效能。判斷邏輯為:1、當配置*,則都驗證為true;2、當配置以/開頭,則說明配置的是間隔時間,這時從0開始計算,若當前時間是間隔時間的整數倍,則驗證為true;3、配置的是純數字則是固定時間,直接比對是否相等即可。

public

bool

validnormal(datetime now)

///

///獲取下次正常播報的時間

/// ///

public

datetime getnextnormaltime(datetime date)

return

date;

}

public

bool

voicenormal(datetime now)

return

false

; }

#region 執行緒處理

private thread _mainthread = null

;

public

void

start()

//////

正常執行的提示資訊

/// private

const

string _normalmsg = "

播出系統日誌監聽正常";

private datetime?_nextnormaltime;

//////

主要的處理邏輯

/// private

void

mainprocess()

continue

; }……}

}

lambda表示式的乙個簡單示例

在一些情況下,有些函式在程式中只會被一處地方引用或使用,況且這些函式的內容或邏輯並不複雜,那麼這樣的函式被過多的定義時,會顯得冗餘。那麼一種優化方法是使用lambda表示式,在linq2sql中大量使用了這種表示式。lamda表示式是一種匿名函式,所有 lambda 表示式都使用 lambda 運算...

基於Linq表示式做的乙個簡單的表示式生成器

using system using system.collections.generic using system.componentmodel.dataannotations.schema using system.linq using system.linq.expressions names...

乙個簡單的表示式解析器

package lipeng.stringdemo 乙個簡單的表示式解析器,這個解析器可以計算由數字 運算子和括號組成的表示式的值,並能處理變數,為了處理簡單,本解析器只支援乙個字母的變數,不區分變數字母的大小寫。因此,最多只能儲存26個變數。如果使用者的變數名長度大於乙個字母,則只取第乙個字母當作...