从另一个无效的构造函数参数调用一个 class 的函数
calling function of one class from another not valid constructor arguments
我正在尝试从另一个 aspx 页面调用 class 函数。但是当我尝试初始化 class 时出现错误。
以前我也试过从另一个 aspx 页面调用这个 class,遇到了类似的问题。从那个页面,visual studio 生成了构造函数。
// my class
public class ClsProcessOrders
{
public ClsProcessOrders(OrderPTO orderPTO_Ally)
{
// TODO: Complete member initialization
this.orderPTO_Ally = orderPTO_Ally;
}
public void InputRecord ()
{
// logic
}
public class OrderPTO
{
public string OrderNumber { get; set; }
public string OrderName { get; set; }
public string OrderAddr { get; set; }
public string OrderTel { get; set; }
public string OrderMobile { get; set; }
public string OrderAccIdNo { get; set; }
public string OrderDate { get; set; }
public string OrderAgent { get; set; }
}
}
我的aspx页面代码是::
if (orderGenerate == 1 && lbl_agent_name.Text == "willis")
{ // not getting error here
ClsProcessOrders.OrderPTO obj = new ClsProcessOrders.OrderPTO()
{
OrderNumber = orderNum,
OrderName = orderName,
OrderAccIdNo = orderAcc;
};
// getting error here
ClsProcessOrders objWillis = new ClsProcessOrders();
}
当我这样做时 ClsProcessOrders objWillis = new ClsProcessOrders();
出现错误 :: 不包含采用 0 个参数的构造函数。
我也试过 ClsProcessOrders objWillis = new ClsProcessOrders(ClsProcessOrders.OrderPTO obj);
:: 给出错误 ClsProcessOrders.OrderPTO 是一个 'type',它在给定的上下文 中无效。
作为建议,我尝试做 ClsProcessOrders objWillis = new ClsProcessOrders(obj)
给出错误:: 名称 'obj' 在当前上下文中不存在 。
如何从此 aspx 页面调用函数 InputRecord?
ClsProcessOrders.OrderPTO is a 'type', which is not valid in the given
context.
您已经在 class 中定义了 class OrderPTO
ClsProcessOrders
将其放在 class 之外。
Doesnot contain constructor that takes 0 arguments.
对于无参数构造函数,创建一个无参数构造函数。
public ClsProcessOrders()
{
}
如果你想传递参数而不是这样做
ClsProcessOrders objWillis = new ClsProcessOrders(obj);
你可以通过像这样创建 ClsProcessOrders
的对象来调用 InputRecord
ClsProcessOrders objWillis = new ClsProcessOrders(obj);
objWillis.InputRecord();
备注
If you want a function to be called outside from its class you need to make it public
.You have made InputRecord
private change it to public
.
您以这种方式定义了 ClsProcessOrders 的构造函数:
public ClsProcessOrders(OrderPTO orderPTO_Ally)
这意味着您必须将类型为 OrderPTO 的对象传递给构造函数,但您在没有对象的情况下调用它:
ClsProcessOrders objWillis = new ClsProcessOrders();
使用
ClsProcessOrders objWillis = new ClsProcessOrders(obj);
相反。
我正在尝试从另一个 aspx 页面调用 class 函数。但是当我尝试初始化 class 时出现错误。
以前我也试过从另一个 aspx 页面调用这个 class,遇到了类似的问题。从那个页面,visual studio 生成了构造函数。
// my class
public class ClsProcessOrders
{
public ClsProcessOrders(OrderPTO orderPTO_Ally)
{
// TODO: Complete member initialization
this.orderPTO_Ally = orderPTO_Ally;
}
public void InputRecord ()
{
// logic
}
public class OrderPTO
{
public string OrderNumber { get; set; }
public string OrderName { get; set; }
public string OrderAddr { get; set; }
public string OrderTel { get; set; }
public string OrderMobile { get; set; }
public string OrderAccIdNo { get; set; }
public string OrderDate { get; set; }
public string OrderAgent { get; set; }
}
}
我的aspx页面代码是::
if (orderGenerate == 1 && lbl_agent_name.Text == "willis")
{ // not getting error here
ClsProcessOrders.OrderPTO obj = new ClsProcessOrders.OrderPTO()
{
OrderNumber = orderNum,
OrderName = orderName,
OrderAccIdNo = orderAcc;
};
// getting error here
ClsProcessOrders objWillis = new ClsProcessOrders();
}
当我这样做时 ClsProcessOrders objWillis = new ClsProcessOrders();
出现错误 :: 不包含采用 0 个参数的构造函数。
我也试过 ClsProcessOrders objWillis = new ClsProcessOrders(ClsProcessOrders.OrderPTO obj);
:: 给出错误 ClsProcessOrders.OrderPTO 是一个 'type',它在给定的上下文 中无效。
作为建议,我尝试做 ClsProcessOrders objWillis = new ClsProcessOrders(obj)
给出错误:: 名称 'obj' 在当前上下文中不存在 。
如何从此 aspx 页面调用函数 InputRecord?
ClsProcessOrders.OrderPTO is a 'type', which is not valid in the given context.
您已经在 class 中定义了 class OrderPTO
ClsProcessOrders
将其放在 class 之外。
Doesnot contain constructor that takes 0 arguments.
对于无参数构造函数,创建一个无参数构造函数。
public ClsProcessOrders()
{
}
如果你想传递参数而不是这样做
ClsProcessOrders objWillis = new ClsProcessOrders(obj);
你可以通过像这样创建 ClsProcessOrders
的对象来调用 InputRecord
ClsProcessOrders objWillis = new ClsProcessOrders(obj);
objWillis.InputRecord();
备注
If you want a function to be called outside from its class you need to make it
public
.You have madeInputRecord
private change it topublic
.
您以这种方式定义了 ClsProcessOrders 的构造函数:
public ClsProcessOrders(OrderPTO orderPTO_Ally)
这意味着您必须将类型为 OrderPTO 的对象传递给构造函数,但您在没有对象的情况下调用它:
ClsProcessOrders objWillis = new ClsProcessOrders();
使用
ClsProcessOrders objWillis = new ClsProcessOrders(obj);
相反。