我想访问内部方法如何访问请求帮助 业务层类
test.c:3:5: error: initializer element is not constant
const int n = i+1;
^
我希望访问内部Method方法的.cs:
internal DataTable SaveCustomerDetail() {
SqlParameter[] parameters = new SqlParameter[7];
parameters[0] = DataAccesLayer.Addparameters("@CustomerName", CustomerName, SqlDbType.VarChar, 100);
parameters[1] = DataAccesLayer.Addparameters("@CustomerEmailID", CustomerEmailIDl, SqlDbType.VarChar, 100);
parameters[2] = DataAccesLayer.Addparameters("@CustomerPhoneNumber",CustomerPhoneNumber, SqlDbType.VarChar, 100);
parameters[3] = DataAccesLayer.Addparameters("@CustomerAddress", CustomerAddress, SqlDbType.VarChar, 100);
parameters[4] = DataAccesLayer.Addparameters("@TotalProducts", totalproducats, SqlDbType.Int, 100);
parameters[5] = DataAccesLayer.Addparameters("@TotalPrice", totalprice, SqlDbType.Int, 100);
parameters[6] = DataAccesLayer.Addparameters("@PaymentMethod", PaymentMethod, SqlDbType.VarChar, 100);
DataTable dt = DataAccesLayer.ExecuteDTBbyprocedure("SP_SAVECUSTOMERDETAIL",parameters);
return dt;
}
答案 0 :(得分:0)
制作方法public
,如public DataTable SaveCustomerDetail
,这是最简单的方法。
如果您的应用程序是基于View - ViewModel - Model模式设计的,那么您尝试访问的业务层位于与表示层不同的程序集中。这意味着它们位于不同的dll
(项目)中。
所以你要做的就是从另一个internal DataTable SaveCustomerDetail
访问dll
,这是不行的。您只能从其他public
访问dll
方法。
您可以这样考虑:您的事件btnplaceorder_Click
是表示层中控件的一部分,而您的internal
方法DataTable SaveCustomerDetail
是业务层的一部分。 btnplaceorder_Click
只是不知道您的代码中有一个名为DataTable SaveCustomerDetail
的方法,因为您创建了internal
。因此,要让所有想要调用它的人都可以看到它,无论代码位于何处,只需将其设为public
。
您可以在此处详细了解internal
- protected
- public
之间的差异:internal vs public in c#。
也许它可以帮助您了解视图模型设计模式:https://stackoverflow.com/search?q=view+model+pattern。