面向对象 C#

Object Orientating C#

我有一个关于 C# 中的面向对象的一般性问题。

假设我有多个 XAML 个页面都有这个方法:

private void SubmitButton_Click(object sender, RoutedEventArgs e)
{
   // Do Something
}

现在我有一个 class 来保存一个方法,class 被称为 Methods.cs 并保存这个:

public void StopUpperAndSpace(TextBox txtBox) 
{
   txtBox.Text = txtBox.Text.Trim();
   // Set it to lowercase
   txtBox.Text = txtBox.Text.ToLower();
}

当用户单击任何页面上的 SubmitButton 时,我希望它执行存储在 Methods.cs 中的此方法。如果我在一个 XAML 页面上有一个名为 NameTextBox 的文本框,当用户单击 SubmitButton 时,我将如何执行该方法,以便 SubmitButton_Click 方法中的 NameTextBox 等于 StopUpperAndSpace 方法中的 txtBox?

我知道这个问题很难理解,但我发现它真的很难解释。如果您需要澄清,请发表评论!谢谢:)

我是不是误会你了,为什么不能传给你的方法呢?我也会让你的方法成为静态的,但如果你想创建你的方法的一个实例 class 你在技术上是可以的。

SomePage.xaml

<TextBox x:Name="SomeTextBox" />
<TextBox x:Name="SomeOtherTextBox />

SomePage.xaml.cs

private void SubmitButton_Click(object sender, RoutedEventArgs e)
{
    // Your initial method call could potentially look like this.
    Methods.StopUpperAndSpace(this.SomeTextBox);

    // Alternatively you could do something like this.
    this.SomeOtherTextBox.Text = Methods.ToLowerAndTrim(this.SomeOtherTextBox.Text);
}

Methods.cs

public static void StopUpperAndSpace(TextBox txtBox) 
{
    txtBox.Text = txtBox.Text.Trim();
    // Set it to lowercase
    txtBox.Text = txtBox.Text.ToLower();
}

public static string ToLowerAndTrim(string text)
{
    return text.Trim().ToLower();
}