为什么我的代码说我的对象没有定义?

Why does my code say my object is not defined?

我是 C# 的新手,无法理解为什么我的 class 对象在当前内容中“不存在”。我已经尝试了多种方法来重新组织和调用我的对象,但仍然得到“名称 'ExcuteObject' 在当前上下文中不存在。

namespace DBTest4
{
    class Program
    {
        class MacroInfo
        {
            public int MsgSN { get; set; }
            public int FormID { get; set; }
            public int Leg { get; set; }
            public int Stop { get; set; }

            public MacroInfo(DataRow row)
            {
                this.MsgSN = Convert.ToInt32(row["MsgSN"]);
                this.FormID = Convert.ToInt32(row["FormID"]);
                this.Leg = Convert.ToInt32(row["Leg"]);
                this.Stop = Convert.ToInt32(row["Stop"]);
            }
            public DataTable Ch(string commandsqlstring, bool isStoredProcedure = false)
            {
                DataTable dataTable = new DataTable();
                ......
                        return dataTable;
            }
            public IEnumerable<T> ExcuteObject<T>(string storedProcedureorCommandText, bool isStoredProcedure = true)
            {
                List<T> items = new List<T>();
                      .....
                return items;
            }

        }
        static void Main(string[] args)
        {          
            string commandsqlstring = "Select top 10 MsgSN,FormID,Leg,Stop from tmail.MacroSendReceiveHistory order by ID desc";
            bool SP = false;
            List<MacroInfo> macroInfos = new List<MacroInfo>();
            macroInfos = ExcuteObject<MacroInfo>(commandsqlstring, SP).ToList();
            Console.ReadLine();
        }
    }
}

为什么看不到执行对象?

ExcuteObject 是 class MacroInfo 的方法而不是 class Program 的方法。如果 ExcuteObject 方法是静态的并且是 class“程序”的方法,那么您当前的实现会起作用。

解决这个问题。您可以执行以下任一操作:

  1. ExcuteObject 方法移动到 Program class 并使其成为静态方法。
  2. ExcuteObject 保留在 MacroInfo class 中,但将 ExcuteObject 方法设为静态并在 Program class 中将其调用为 MacroInfo.ExcuteObject(...)
  3. 创建 MacroInfo class 的实例 并在 MacroInfo class.
  4. 的实例上调用方法