C#参数转发

C#参数转发,c#,C#,我是初学者,请耐心听我说 这都是C 在“MainWindow”类中,我有以下代码: private void textBox_Enter(object sender, EventArgs e) { view.passwordInputEnter(/**/); } public void passwordInputEnter(object sender) { if (/**/ == "Passwort") { /**/ = string.Empty;

我是初学者,请耐心听我说

这都是C

在“MainWindow”类中,我有以下代码:

private void textBox_Enter(object sender, EventArgs e)
{
    view.passwordInputEnter(/**/);
}
public void passwordInputEnter(object sender)
{
    if (/**/ == "Passwort")
    {
        /**/ = string.Empty;
        /**/ = '*';
    }
}
在“视图”类中,我有以下代码:

private void textBox_Enter(object sender, EventArgs e)
{
    view.passwordInputEnter(/**/);
}
public void passwordInputEnter(object sender)
{
    if (/**/ == "Passwort")
    {
        /**/ = string.Empty;
        /**/ = '*';
    }
}
我想做的是:在类“MainWindow”中有多个方法,它们都会调用与“view”不同的方法,而“view”的作用完全相同。我想改变这一点,这样它们都可以调用相同的方法,这样我就可以轻松地添加或删除它们。为此,我需要识别并访问启动事件的对象的各种参数。然而,我不知道如何发送

object sender
由文本框接收的,输入PasswordInpunter()。在该方法中,我希望调用诸如“sender.Text”之类的函数

我真的不知道该怎么说才更容易理解


任何建议都将不胜感激

如果方法的所有调用者都是TextBox

换成

public void passwordInputEnter(TextBox textBox)
{
    if (textBox.Text == "Passwort")
     {
         xxx= string.Empty;
         /**/ = '*';
      }
}
叫它

private void textBox_Enter(object sender, EventArgs e)
{
   view.passwordInputEnter((TextBox)sender);
}
编辑


但在这种情况下,只为所有文本框共享同一事件会更容易…

如果方法的所有调用方都是文本框

换成

public void passwordInputEnter(TextBox textBox)
{
    if (textBox.Text == "Passwort")
     {
         xxx= string.Empty;
         /**/ = '*';
      }
}
叫它

private void textBox_Enter(object sender, EventArgs e)
{
   view.passwordInputEnter((TextBox)sender);
}
编辑


但在这种情况下,只为所有文本框共享同一事件会更容易…

如果方法的所有调用方都是文本框

换成

public void passwordInputEnter(TextBox textBox)
{
    if (textBox.Text == "Passwort")
     {
         xxx= string.Empty;
         /**/ = '*';
      }
}
叫它

private void textBox_Enter(object sender, EventArgs e)
{
   view.passwordInputEnter((TextBox)sender);
}
编辑


但在这种情况下,只为所有文本框共享同一事件会更容易…

如果方法的所有调用方都是文本框

换成

public void passwordInputEnter(TextBox textBox)
{
    if (textBox.Text == "Passwort")
     {
         xxx= string.Empty;
         /**/ = '*';
      }
}
叫它

private void textBox_Enter(object sender, EventArgs e)
{
   view.passwordInputEnter((TextBox)sender);
}
编辑


但是,在这种情况下,只为所有文本框共享同一事件会更容易…

如果我正确理解您的问题,您会问如何将参数传递给PasswordInputer方法。按如下方式传递发件人:

private void textBox_Enter(object sender, EventArgs e)
{
    view.passwordInputEnter(sender);
}

public void passwordInputEnter(object sender)
{
    if (sender is TextBox)
    {
       TextBox textBox = (TextBox)sender;
       if (textBox.Text == "Passwort")
       {
            /**/ = string.Empty;
            /**/ = '*';
       }
     }
}

如果我正确理解了您的问题,您是在问如何将参数传递给PasswordInputer方法。按如下方式传递发件人:

private void textBox_Enter(object sender, EventArgs e)
{
    view.passwordInputEnter(sender);
}

public void passwordInputEnter(object sender)
{
    if (sender is TextBox)
    {
       TextBox textBox = (TextBox)sender;
       if (textBox.Text == "Passwort")
       {
            /**/ = string.Empty;
            /**/ = '*';
       }
     }
}

如果我正确理解了您的问题,您是在问如何将参数传递给PasswordInputer方法。按如下方式传递发件人:

private void textBox_Enter(object sender, EventArgs e)
{
    view.passwordInputEnter(sender);
}

public void passwordInputEnter(object sender)
{
    if (sender is TextBox)
    {
       TextBox textBox = (TextBox)sender;
       if (textBox.Text == "Passwort")
       {
            /**/ = string.Empty;
            /**/ = '*';
       }
     }
}

如果我正确理解了您的问题,您是在问如何将参数传递给PasswordInputer方法。按如下方式传递发件人:

private void textBox_Enter(object sender, EventArgs e)
{
    view.passwordInputEnter(sender);
}

public void passwordInputEnter(object sender)
{
    if (sender is TextBox)
    {
       TextBox textBox = (TextBox)sender;
       if (textBox.Text == "Passwort")
       {
            /**/ = string.Empty;
            /**/ = '*';
       }
     }
}
通常的做法是(尽管我必须说这通常不是一个好的做法):

通常的做法是(尽管我必须说这通常不是一个好的做法):

通常的做法是(尽管我必须说这通常不是一个好的做法):

通常的做法是(尽管我必须说这通常不是一个好的做法):


按如下方式投出您的发件人: var textBox=发送方为textBox

检查它是否为空,如果不是,则设置其文本属性
textBox.Text=“更改值”

将您的发件人强制转换为以下内容: var textBox=发送方为textBox

检查它是否为空,如果不是,则设置其文本属性
textBox.Text=“更改值”

将您的发件人强制转换为以下内容: var textBox=发送方为textBox

检查它是否为空,如果不是,则设置其文本属性
textBox.Text=“更改值”

将您的发件人强制转换为以下内容: var textBox=发送方为textBox

检查它是否为空,如果不是,则设置其文本属性
textBox.Text=“更改值”

这是您尝试实现的某种模型视图演示器吗?这是您尝试实现的某种模型视图演示器吗?这是您尝试实现的某种模型视图演示器吗?这是您尝试实现的某种模型视图演示器吗?什么是更好的做法?这也不是一个坏做法只要不在同一事件处理程序中处理不同类型的对象。也就是说,您总是检查它是否是TextBox,因为事件处理程序只处理TextBox的事情。。。不要为不同的对象重用事件处理程序(一般来说)。什么是更好的做法?只要不在同一个事件处理程序中处理不同类型的对象,这不是一个坏做法。也就是说,您总是检查它是否是TextBox,因为事件处理程序只处理TextBox的事情。。。不要为不同的对象重用事件处理程序(一般来说)。什么是更好的做法?只要不在同一个事件处理程序中处理不同类型的对象,这不是一个坏做法。也就是说,您总是检查它是否是TextBox,因为事件处理程序只处理TextBox的事情。。。不要为不同的对象重用事件处理程序(一般来说)。什么是更好的做法?只要不在同一个事件处理程序中处理不同类型的对象,这不是一个坏做法。也就是说,您总是检查它是否是TextBox,因为事件处理程序只处理TextBox的事情。。。不要为不同的对象重用事件处理程序(一般来说)。