Entwickler-Ecke

Basistechnologien - C# Space(X) ??


r0land - Di 19.05.09 01:11
Titel: C# Space(X) ??
Hi


Von VB kenne ich die Funktion Space(X), mit der man einen String mit X Leerzeichen erzeugen kann. Bin auch der meinung, daß ich eine ähnliche Funktion kenne mit der man eine Zeichenkette mit beliebigem Inhalt erzeugen kann. Aber da weiß ich jetzt nicht mehr, obs von VB, PHP oder eigenen Funktionen kam...

Im Moment benutze ich


Quelltext
1:
2:
string X = "";
X = X.PadRight(20,"*");

... was ich irgendwie blöd finde, aber den Zweck erfüllt. ^^

Gibts da eine bessere Lösung? Oder muss ich eine Funktion selber schreiben?


Grüße


jaenicke - Di 19.05.09 01:24

Was gefällt dir daran denn nicht?

Du kannst ja auch einfach schreiben:

C#-Quelltext
1:
"".PadRight(20)                    
also z.B.

C#-Quelltext
1:
MessageBox.Show(">" + "".PadRight(20) + "<");                    
Und schon hast du da 20 Leerzeichen.


r0land - Di 19.05.09 03:38

Oh schön. Danke für das Beispiel!

Was mir daran nicht gefällt? Naja, das hat was mit Ordnungswahn zu tun. ^^

Aber ich werde es überleben. Und zur Not schreibe ich mir halt meine eigene Space-Funktion.


jaenicke - Di 19.05.09 05:31

user profile iconr0land hat folgendes geschrieben Zum zitierten Posting springen:
Naja, das hat was mit Ordnungswahn zu tun. ^^
Was ist daran Ordnung, nur weil eine Funktion anders heißt? :shock:

Du kannst es auch so machen, wenn dir PadRight nicht gefällt:

C#-Quelltext
1:
MessageBox.Show(">" + new String(' '20) + "<");                    


r0land - Di 19.05.09 06:32

Na das ist doch mal was.

Vielen Dank für den letzten Tipp :)


JüTho - Di 19.05.09 09:53

Als Ergänzung zu den letzten Bemerkungen: Das ist ein Grund dafür, dass ich immer für das Blättern in der SDK-Doku/MSDN plädiere. Nur dadurch findet man heraus, welche Überladungen (hier: Konstruktoren für string) es gibt. Jürgen


r0land - Di 19.05.09 12:42

Schon recht. Die MSDN habe ich auch zu Rate gezogen... das mache ich immer zuerst. Denn damit komme ich meistens schneller zum Ziel, als irgendwo im Forum zu fragen und auf Antwort zu warten, so denn eine kommt (wofür ich dann dankbar bin).

Offensichtlich hab ich aber falsch gesucht... zB nach Schlüsselwörtern, Membern, Methoden, Space, String create, String format und was noch alles.

Bin auch auf die Idee gekommen, daß es irgendwie mit String.xx funktionieren könnte. War bestimmt ne Stunde in der Hilfe unterwegs. Aber leider bin ich nicht über die Überladungen gestolpert.

Verzeihung :/

Nächstes mal suche ich einfach noch ne Stunde länger oder baue mir gleich ne eigene Funktion, wobei ich dann hoffentlich keine weitere Hilfe in Anspruch nehmen muss. :)

Grüße


JüTho - Di 19.05.09 13:01

user profile iconr0land hat folgendes geschrieben Zum zitierten Posting springen:
Offensichtlich hab ich aber falsch gesucht... zB nach Schlüsselwörtern, Membern, Methoden, Space, String create, String format und was noch alles.

Bin auch auf die Idee gekommen, daß es irgendwie mit String.xx funktionieren könnte. War bestimmt ne Stunde in der Hilfe unterwegs. Aber leider bin ich nicht über die Überladungen gestolpert.

Weniger die Suchfunktion als das gezielte Blättern ist hilfreich. Vorschlag zum künftigen Vorgehen:

Offline-Hilfe: Ich habe mir die SDK-Doku während der SDK-Installation als Offline-Version installiert. Diese ist per AutoStart immer geöffnet:

Quelltext
1:
2:
3:
4:
"C:\Programme\Gemeinsame Dateien\Microsoft Shared\Help 8\dexplore.exe" 
   /helpcol ms-help://MS.NETFramework.v20.de 
   /LaunchNamedUrlTopic DefaultPage 
   /usehelpsettings NETFrameworkSDK.20

Dort greife ich über den Index schnell zu auf "String-Klasse - Alle Member".

Online-Hilfe: Über MSDN > MSDN Library > .NET Entwicklung > .NET Framework SDK 2.0 > Referenz zur Klassenbibliothek sucht man sich den gewünschten Namespace und die Klasse aus und wählt dann "Member", z.B. String-Member [http://msdn.microsoft.com/de-de/library/system.string_members(VS.80).aspx].

Dort gibt es eine Liste mit allen Eigenschaften, Methoden und Ereignissen mit einer kurzen Beschreibung. Das Wörtchen "Überladen" bei den Beschreibungen macht sofort klar, dass es interessant sein kann, genauer nachzulesen.

Statt "Alle Member" kann man natürlich auch direkt zu allen Eigenschaften usw. oder zu einem speziellen Eintrag gehen. In der IDE führen F1 oder die Pause nach dem Punkt ("Intellisense") genauso zum Ziel.

Du wirst sehen, dass das schneller zum Ziel führt und keine "stundenlange Suche" nötig macht. Jürgen