| 

.NET C# Java Javascript Exception

2
Hi,
Wieso kann ich in c# folgende Syntax nur in static Methoden benutzen?
public static string Foo(this string str)


Wie nennt man denn dieses Konzept? Dann kann ich es noch in den Titel einfügen.

Grüßle
01.10.2009
wartezeit 125 1 4
wirkt sich das this irgendwie auf die methode aus?
damy3n 01.10.2009
Das this steht dafür, dass du das Objekt, in diesem Fall den String, auf dem du die Methode ausführst, als Parameter mitgibst.
bbohac 01.10.2009
Es wirkt sich nicht auf die Methode aus - diese kann ganz normal (als statische Methode) verwendet werden.

Das this dient lediglich dazu dem Compiler mitzuteilen dass es eine Erweiterungsmethode für den Typ des Arguments ist.
gfoidl 01.10.2009
2 Antworten
3
Das Konzept nennt man Extensions oder Erweiterungsmethoden.

Sie sind statisch, damit sie überall ohne Instanziierung für den verwendeten Typ verfügbar sind.

Edit: Hier noch ein Link zum Thema Erweiterungsmethoden.

Servus,
Klaus
01.10.2009
klaus_b 1,6k 3 7
klaus_b 1,6k 3 7
danke klaus_b
wartezeit 01.10.2009
-1
Zur Erweiterung:

Statisch und ohne Instanziierung heißt unter anderem, dass man einfach so auf die Funktionen zugreifen kann:
<?php
include("klasse.php");
klassenname::funktionsname($parameter)
?>


Edit: Absolut richtig, hab mich total versehen.... Ist ja nicht PHP hier ;)
01.10.2009
Martin Bassus 486 1 1 8
Martin Bassus 486 1 1 8
1
Warum eine PHP-Antwort auf eine C#-Frage?
gfoidl 01.10.2009

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH