为什么我的代码说我的对象没有定义?
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“程序”的方法,那么您当前的实现会起作用。
解决这个问题。您可以执行以下任一操作:
- 将
ExcuteObject
方法移动到 Program
class 并使其成为静态方法。
- 将
ExcuteObject
保留在 MacroInfo
class 中,但将 ExcuteObject
方法设为静态并在 Program
class 中将其调用为 MacroInfo.ExcuteObject(...)
- 创建
MacroInfo
class 的实例
并在 MacroInfo
class. 的实例上调用方法
我是 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“程序”的方法,那么您当前的实现会起作用。
解决这个问题。您可以执行以下任一操作:
- 将
ExcuteObject
方法移动到Program
class 并使其成为静态方法。 - 将
ExcuteObject
保留在MacroInfo
class 中,但将ExcuteObject
方法设为静态并在Program
class 中将其调用为MacroInfo.ExcuteObject(...)
- 创建
MacroInfo
class 的实例 并在MacroInfo
class. 的实例上调用方法