c#方法签名:如何使用教授所需的签名创建代码

时间:2017-08-04 20:45:41

标签: c#

在学校,我们的任务是创建一个检查字符串是否为回文的方法。我写了代码,但我不能使用签名方法。教授要求的签名是:

bool ItsPalindrom(string read);

我的代码:

private void buttonPalindrom_Click(object sender, EventArgs e)
{
    string read = textBoxPalindrom.Text.ToLower();
    read = read.Replace(" ", "");
    int i = 0;
    string ReverseArr = "";
    while (i < read.Length)
    {
        ReverseArr = read[i] + ReverseArr;
        i++;
    }
    if (read== ReverseArr)
    {
        MessageBox.Show("je palindrom");
    }
    else
    {
        MessageBox.Show("ni palindrom");
    }
}

2 个答案:

答案 0 :(得分:4)

为什么不呢?使用该签名定义一个方法并将逻辑移到那里。在事件处理程序中调用该方法

bool ItsPalindrom(string read)
{
  //your palindrome logic
}

private void buttonPalindrom_Click(object sender, EventArgs e)
{
   ItsPalindrom(textBoxPalindrom.Text.ToLower());  
}

答案 1 :(得分:2)

方法&#34;签名&#34;是它的返回类型和参数。您无法更改事件处理程序的签名(例如按钮单击方法),但您可以让它调用另一个方法,从现有代码重构:

private bool IsPalindrome(string read)
{
        read = read.Replace(" ", "");
        int i = 0;
        string ReverseArr = "";
        while (i < read.Length)
        {
            ReverseArr = read[i] + ReverseArr;
            i++;
        }
        return read == ReverseArr;
}

然后你就叫它:

private void buttonPalindrom_Click(object sender, EventArgs e)
{
    string read = textBoxPalindrom.Text.ToLower();
    bool palindrome = IsPalindrome(read);
    if (palindrome )
    {
        MessageBox.Show("je palindrom");
    }
    else
    {
        MessageBox.Show("ni palindrom");
    }
}