1

我在试图找出更多关于如何键入一组代码并在 CS 文件的其他部分引用它时遇到了很多困难。

例如,我有一个带有标签的简单“switch 语句”。我不想将其输入 2 或 3 次,而是希望能够调用它。下面是我想要做的事情的快速说明。

//Begin Reuseable Codes
string title;
switch (Request.QueryString["parameter"]){
 case "first":
       title = "123";
       break;
 case "two":
       title = "ABC";
       break;
}
lblDDSubject.Text = "My message" + title
//End Reuseable Codes


protected void Page_Load(object sender, EventArgs e)
{
    call the above reusable codes;
}

protected void something_SelectedIndexChanged(object sender, EventArgs e)
{
    call the above reusable codes here also;
]

既然我是一个超级菜鸟,助手可以以不那么抽象的方式回应吗?

4

3 回答 3

1

如果您总是使用标签,您甚至可以使用以下内容扩展其他答案,您甚至可以根据需要替换开关盒,尽管我认为您不需要这样的东西。

    public static void Reusable(HttpRequest httpRequest, string parameter, Label label)
    {
        string title = "";
        switch (httpRequest.QueryString[parameter])
        {
            case "first":
                title = "123";
                break;
            case "two":
                title = "ABC";
                break;
        }
        label.Text = "My message" + title;
    }

并这样称呼它:

    Reusable(Request, "parameter", lblDDSubject);
于 2013-02-16T05:53:31.717 回答
1

您可以将可重用代码放在方法中并让它返回标题。

private string GetTitle(HttpRequest Request)
{
  string title;

  switch (Request.QueryString["parameter"]){
   case "first":
       title = "123";
       break;
   case "two":
       title = "ABC";
       break;
   }
   return title;
}

然后从您的 Page_Load 方法中调用它

string title = GetTitle(this.Request);
于 2013-02-16T05:39:33.063 回答
1

方法就是为了这些目的。您在方法中编写代码

private string DoSomething()
{
    string title;
    switch (Request.QueryString["parameter"]){
     case "first":
           title = "123";
           break;
     case "two":
           title = "ABC";
           break;

    return "My message" + title;
}

然后像下面这样调用这个方法:

protected void Page_Load(object sender, EventArgs e)
{
    lblDDSubject.Text = DoSomething();
}

protected void something_SelectedIndexChanged(object sender, EventArgs e)
{
    lblDDSubject.Text = DoSomething();
]

看看这个帖子。

于 2013-02-16T05:39:56.090 回答