C#嵌套函数Wont触发器

本文关键字:触发器 Wont 函数 嵌套 | 更新日期: 2023-09-27 18:22:07

你好,我想问你关于某个程序的一个小问题。因此,基本上,程序(控制台应用程序)从其他Procee(程序)读取数据包,并传递数据包,以便对其进行分析。我研究的问题是,我的一个嵌套函数不会(完全)触发。示例:

  1. 这一行位于Main()函数中。与其他内容一起,这只是一个剪辑

     captureDevice.OnPacketArrival += new       PacketArrivalEventHandler(Program.device_OnPacketArrival);
    

之后我有了一些安慰。写信等等。没什么特别的。

  1. device_OnPacketArrival()是内部有其他嵌套函数的函数。

     private static void device_OnPacketArrival(object sender, CaptureEventArgs packet)
        {
       DateTime date = packet.Packet.Timeval.Date;
       int length = packet.Packet.Data.Length;
        ..........
        Program.ValidateItem(first_db_id, first_bin_id, out char_id, out user_id, out        type, out valid);
        ............
    
  2. 导致问题的函数是:ValidateItem()

     public static void ValidateItem(int item_Id, int item_type, out int char_id, out   int user_id, out int type, out int valid)
    {
        valid = type = user_id  = char_id = 0;
        string oString = "SELECT type,char_id,user_id FROM [DB].[dbo].[Table] WHERE id = @item_id";
        SqlCommand oCmd = new SqlCommand(oString, Program.s_DB);
        oCmd.Parameters.AddWithValue("@item_id", item_Id);
        try
        {
            using (SqlDataReader oReader = oCmd.ExecuteReader())
            {
                if (oReader.Read())
                {
                    type = Convert.ToInt32(oReader["type"]);
                    char_id = Convert.ToInt32(oReader["char_id"]);
                    user_id = Convert.ToInt32(oReader["user_id"]);
                    if (type == item_type)
                    {
                        valid = 1;
                    }
                    else
                    {
                        valid = 0;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
    }
    

问题是,只有函数的第一行被初始化——valid=type=user_id=char_id=0;但如果我直接在Main()中运行该函数,它的工作原理很好。

C#嵌套函数Wont触发器

不确定是否回答了您的问题但是在c中没有"嵌套"函数,如果您需要创建"幻觉",请尝试使用annonymus函数