从另一个无效的构造函数参数调用一个 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);

相反。