C# 从另一页调用非静态方法
如何从另一个页面调用非静态方法 我不能使用静态方法 我在母版页中有一个方法 现在,我想从母版页方法调用另一个页面中的方法 母版页:C# 从另一页调用非静态方法,c#,asp.net,C#,Asp.net,如何从另一个页面调用非静态方法 我不能使用静态方法 我在母版页中有一个方法 现在,我想从母版页方法调用另一个页面中的方法 母版页: protected void Pagination_Click(object sender, EventArgs e) { int Count = Convert.ToInt32(DRCount.Text); LinkButton LinkButton = (LinkButton)sender; int Select = Convert.To
protected void Pagination_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(DRCount.Text);
LinkButton LinkButton = (LinkButton)sender;
int Select = Convert.ToInt32(LinkButton.Text);
int Num2 = Count * Select;
int Num1 = Num2 - Count;
**//Calling GetData method in 01.aspx**
}
01.aspx.cs page:
public void GetData(int Num1, int Num2)
{
int Count = Convert.ToInt32(this.Master.Count);
int PriceSort = Convert.ToInt32(this.Master.Price);
string NameSort = this.Master.Name.ToString();...
}
访问修饰符需要从私有更改为公共。 此外,您需要在其他方法中寻求更新的所有变量都需要是可访问的。(阅读codecasters答案,了解针对您的问题的更深刻的答案) 进行以下更改:
protected void Pagination_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(DRCount.Text);
LinkButton LinkButton = (LinkButton)sender;
int Select = Convert.ToInt32(LinkButton.Text);
int Num2 = Count * Select;
int Num1 = Num2 - Count;
var otherClass = new OtherClass();
otherClass.GetData(Num1,Num2);
}
01.aspx.cs page:
public void GetData(int Num1, int Num2)
{
int Count = Convert.ToInt32(this.Master.Count);
int PriceSort = Convert.ToInt32(this.Master.Price);
string NameSort = this.Master.Name.ToString();...
}
我不确定您的另一个类叫什么,但这应该可以用。访问修饰符需要从private更改为public。 此外,您需要在其他方法中寻求更新的所有变量都需要是可访问的。(阅读codecasters答案,了解针对您的问题的更深刻的答案) 进行以下更改:
protected void Pagination_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(DRCount.Text);
LinkButton LinkButton = (LinkButton)sender;
int Select = Convert.ToInt32(LinkButton.Text);
int Num2 = Count * Select;
int Num1 = Num2 - Count;
var otherClass = new OtherClass();
otherClass.GetData(Num1,Num2);
}
01.aspx.cs page:
public void GetData(int Num1, int Num2)
{
int Count = Convert.ToInt32(this.Master.Count);
int PriceSort = Convert.ToInt32(this.Master.Price);
string NameSort = this.Master.Name.ToString();...
}
我不确定你的另一个类叫什么,但这应该可以用。你可以简单地做
YourClassName variableName = new YourClassName();
然后将方法调用为variableName.GetDate(1,2)代码>
您必须将方法从private
更改为public
,以便从另一个类调用它
进一步阅读你只需
YourClassName variableName = new YourClassName();
然后将方法调用为variableName.GetDate(1,2)代码>
您必须将方法从private
更改为public
,以便从另一个类调用它
进一步阅读您不想新建
另一个来自codebehind的ASP.NET页面。相反,将代码移动到可以利用共享逻辑的类。您不想从codebehind创建另一个ASP.NET页面。相反,将代码移动到一个可以利用共享逻辑的类中。如果它是在不同页面之间共享的方法,则不应该在特定页面中声明它。好的设计原则会说让它成为一个单独的类的一部分。假设您将其称为“MyDataClass”。(显然,选择更合适的东西)
在另一个名为MyDataClass.cs的文件中
public class MyDataClass
{
public void GetData(int Num1, int Num2)
{
//...
}
}
这样,您就可以根据需要在任意多的页面中使用它,甚至可以轻松地在另一个项目中重复使用它。这种职责的抽象是学习C#等语言中的面向对象编程的基本内容之一。如果它是一种在不同页面之间共享的方法,则不应该在特定页面中声明。好的设计原则会说让它成为一个单独的类的一部分。假设您将其称为“MyDataClass”。(显然,选择更合适的东西)
在另一个名为MyDataClass.cs的文件中
public class MyDataClass
{
public void GetData(int Num1, int Num2)
{
//...
}
}
这样,您就可以根据需要在任意多的页面中使用它,甚至可以轻松地在另一个项目中重复使用它。这种责任的抽象是学习C#等语言的面向对象编程的基本内容之一。谢谢你的回答。你能告诉我一个例子直到看到它吗?我认为你的回答巧妙地涵盖了为什么这不应该是一个问题,我试图概述一般问题。更新了我的答案,以帮助OP回答他的具体问题。谢谢你的回答。你能告诉我一个样本直到看到它吗?我认为你的回答巧妙地涵盖了为什么这不应该是一个问题,我试图概述一般问题。更新了我的答案以帮助OP回答他的具体问题。你是说ASP.NET使用OO?o_O@Bart大多数人在it中编程时不会这样做,但这并不意味着你不能你是说ASP.NET使用OO?o_O@Bart大多数人在it中编程时不会这样做,但这并不意味着你不能