Gibt es eine Möglichkeit, die richtextbox Kontrolle in C# unter Verwendung einer äquivalenten Methode wie unten zu erweitern:Wie kann ich die richtextbox Steuerung mit System-Namensraum erweitern nur
namespace System
{
public static class StringExtensions
{
public static string PadBoth(this string str, int length)
{
int spaces = length - str.Length;
int padLeft = spaces/2 + str.Length;
return str.PadLeft(padLeft).PadRight(length);
}
}
}
So etwas wie:
namespace System.Windows.Controls
{
public static class RichTextBoxExtensions
{
public static string MyCustomMethod()
{
return "It works!";
}
}
}
Ich weiß, wie man es auf die alte Art und Weise erweitert, indem man eine Klasse erstellt und das richtextbox-Objekt erbt, was ich jedoch lieber in umgekehrter Richtung tun würde, da das obige RichTextBox-Objekt die Funktionalität hinzufügt, ohne dass ein neues benutzerdefiniertes Steuerelement erstellt werden muss um seine Funktionalität zu erweitern.
Um es klar, ich bin nicht sucht die folgenden (oder ähnlichen) zu tun:
public class Foo : RichTextBox { }
Ich bin nicht sicher, was diese Methode der Erweiterung aufgerufen wird oder wenn es hat sogar einen bestimmten Namen/Klassifizierung, aber es fühlt sich einfach natürlicher an, wenn Objekte auf diese Weise erweitert werden, als neue Steuerelemente zu erstellen, die eine bereits aufgeblähte Symbolleiste mit Hunderten von Steuerelementen füllen.
Was Sie gezeigt haben, ist eine "Erweiterungsmethode" (https://msdn.microsoft.com/en-us/library/bb383977.aspx). Die Antwort hängt davon ab, was genau Sie erreichen möchten. – itsme86