<
sysnormallong
>*:00:00
sysnormallong
>
privatestring _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、配置的是純數字則是固定時間,直接比對是否相等即可。
publicbool
validnormal(datetime now)
//////獲取下次正常播報的時間
/// ///
public
datetime getnextnormaltime(datetime date)
return
date;
}
publicbool
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個變數。如果使用者的變數名長度大於乙個字母,則只取第乙個字母當作...