如何将任何可以显示文本的对象传递给C#方法

如何将任何可以显示文本的对象传递给C#方法,c#,user-interface,polymorphism,C#,User Interface,Polymorphism,我正在尝试编写一个类的方法,该类应该获取一个对象(如textbox或label)作为参数,并且每当它需要向用户显示消息时,它都会使用该对象来显示消息 由于该类将在其他程序中使用,因此它应该具有一定的可移植性,并且应该实现对任何基于文本的对象(如标签或文本框等)的功能 考虑以下方法: public void TcpEndPoint(string IP,/* a text-based object */) { // There's a need to show a message

我正在尝试编写一个类的方法,该类应该获取一个对象(如textbox或label)作为参数,并且每当它需要向用户显示消息时,它都会使用该对象来显示消息

由于该类将在其他程序中使用,因此它应该具有一定的可移植性,并且应该实现对任何基于文本的对象(如标签或文本框等)的功能

考虑以下方法:

public void TcpEndPoint(string IP,/* a text-based object */)
{ 

    // There's a need to show a message 
    // to the user by the text-based object

}

有没有办法实现这一点,或者这种编程不适合于可移植类

你称之为基于文本的对象的东西是我假设的。此类是windows窗体中所有可视对象的基类。因此,您可以使用该类并
get
它是
Text
属性

public void TcpEndPoint(string IP, Control _object)
{ 
    ...
    MessageBox.Show(_object.Text);/// or in any other way you like.
    ...
}
更新:

如果您想
设置对象的
文本
属性并在其上显示消息,只需如下使用:

public void TcpEndPoint(string IP, string message, Control _object)
{ 
    ...
    _object.Text = message; /// or in any other way you like.
    ...
}

我会选择另一种方法。我将使用委托传递文本,而不是传递文本接收对象:

public void TcpEndPoint(string IP, Action<string> setText)
{
    setText(message);
}

我不打算使用MessageBox。我需要的是一个标签或文本框之类的东西来在表单上显示消息。希望你明白我的意思:)不,我不明白:)那就试着回答你的问题吧。
TcpEndPoint(someIp, t => yourTextBox.Text = t);