1. 程式人生 > >C#不能在匿名方法、lambda表示式、查詢表示式或本地函式中使用ref、Out或in引數

C#不能在匿名方法、lambda表示式、查詢表示式或本地函式中使用ref、Out或in引數

C#中傳入的ref引數不能直接用於Linq語句中,需要先用變數接收再賦值: 

public static bool ALM_Update_Alarm_Msg_Main(ref string Msg_Code, ref ALMCoreType.ALM_Update_Alarm_Msg_In_Tag Update_Alarm_Msg_In, ref BASCoreType.Cmn_Out_Tag Cmn_Out)
        {
            try
            {
                DataTable adoDataTable = null;
                //define table variable

                ModelContext ctx = new ModelContext();
                string sMsgCode = "";
                string sFactory = Update_Alarm_Msg_In._cmn_in._factory;
                string sAlarmID = Update_Alarm_Msg_In.alarm_id;
                string sAlarmType = Update_Alarm_Msg_In.alarm_type;
                //先用string變數接收Update_Alarm_Msg_In._cmn_in._factory,再在Linq中使用
                listAlmrec = ctx.Almreceiver.Where(t => t.Factory == sFactory && t.AlarmId == sAlarmID).ToList();
			}
		}