2010-02-17 12 views
11

Mi chiedevo se esiste un modo per creare metodi di estensione utilizzando Visual Studio 2005 e il framework 2.0?È possibile creare metodi di estensione con 2.0 Framework?

public static class StringExtensions 
{ 
    public static void SomeExtension(this String targetString) 
    { 

    } 
} 

Se non c'è modo di farlo, quale sarebbe l'equivalente? Basta creare metodi statici in una sorta di classe di libreria?

+0

Si sta utilizzando Visual Studio 2008 o 2005? –

+0

Sto usando VS2005 – DevDemon

+2

quindi sei sfortunato. –

risposta

18

È possibile creare metodi di estensione utilizzando .Net framework 2.0, se si utilizza il compilatore C# 3.0 e Visual Studio 2008 o versione successiva.

Il problema è che si deve aggiungere il codice al progetto:

namespace System.Runtime.CompilerServices 
{ 
    public class ExtensionAttribute : Attribute { } 
} 

In sostanza è necessario ri dichiarare l'ExtensionAttribute in Core.dll (Net 3.5 +), nel progetto.

+0

Ok grazie, quindi sembra possibile con VS2008 e 2.0, ma non VS2005 e 2.0, grazie! – DevDemon

3

No, questo non è possibile in .Net 2.0 (senza utilizzare il compilatore C# 3.0). Si può solo creare metodi statici che fanno esattamente la stessa cosa però:

public static class StringExtensions 
{ 
    public static void SomeExtension(String targetString) 
    { 
     // Do things 
    } 
} 

// Example use: 
StringExtensions.SomeExtension(targetString); 

In realtà i metodi di estensione sono solo un modo veloce di scrivere quanto sopra.

+0

è ** possibile ... –

+0

@Andreas Cosa succede se si utilizza il compilatore C# 3.0? Questo è * sicuramente * barare. – Justin

+0

ma possibile ... quindi la tua risposta è sbagliata. sarebbe vero se affermasse 'non è possibile usare .net 2.0 compiler' –

Problemi correlati