[.NET]讓function回傳value的型態為動態dynamic(ex:可回傳string or double or.....)

  • 407
  • 0

[.NET]讓function回傳value的型態為動態dynamic(ex:可回傳string or double or.....)

像是下面這樣宣告function:

public dynamic GetHitData<T>(string myVar)
{
	string createTime = "";
	double score = 0;	
	
	if (typeof(T) == typeof(string))
	{                             
		return createTime;
	}
	else
	{
		return score.ToString();
	}
}


使用的時候,像是下面這樣使用,就可以回傳不同型態的value了,下面是用LINQ為範例,一般的程式碼當然也OK

var DataTableQuery = from pr in db.tblMyPRTable.AsEnumerable()
	 join hr in db.tblMyHRTable on pr.Idno equals hr.EMPLID
	 where (input.Locations == "0" ? true : hr.LOCATION == input.Locations)	 
	 select new AttendDTModel
	 {		 
		 ScoreIn = GetHitData<double>(pr.Idno),
		 ScoreOut = GetHitData<double>(pr.Idno),
		 HitInTime = GetHitData<string>(pr.Idno),		 
		 ClockInFlag = -1,
		 ClockOutFlag = -1,
		 ClockInName = "",
		 ClockOutName = ""
	 };