La "proprietà" in C # costa molto?

1

Ho una classe creata in qualche spazio dei nomi, come SomeNameSpace.SubNameSpace.StaticClassName

Ecco uno snippet di codice proveniente da un altro file di codice in cui voglio usare questa classe molte altre volte, quindi ho creato una proprietà nel file di codice come questa

//Just to provide an Alias for long name "SomeNameSpace.SubNameSpace.StaticClassName.PropertyName"
public StaticClassName ServerProxyAlias
{
    get
    {
        return SomeNameSpace.SubNameSpace.Instance.PropertyName;
    }
    set
    {
        SomeNameSpace.SubNameSpace.Instance.PropertyName = value;
    }
}

C'è qualche problema nel fare così?

    
posta Sreekumar P 18.07.2012 - 15:15
fonte

5 risposte

5

Penso che riguardi tanto la coerenza quanto la leggibilità. Altri sviluppatori potrebbero perdere il fatto che hai implementato una "proprietà proxy" e riferisciti ancora a SomeNameSpace.SubNameSpace.Instance.PropertyName direttamente.

Quindi si finisce con il codice dove a volte ServerProxyAlias viene usato e talvolta non lo è - anche nello stesso metodo - e non è ovvio che siano la stessa cosa, per paura che uno guardi effettivamente su come viene implementato ServerProxyAlias .

Non sto dicendo che è un grosso problema, ma chiedi eventuali problemi con il tuo approccio. Bene, questo mi viene in mente.

    
risposta data 18.07.2012 - 15:39
fonte
2

Facendo riferimento alla domanda nel titolo, ti costa tanto quanto invocare un metodo. L'equivalente di Java di proprietà, ad esempio, sarebbe getter e setter.

    
risposta data 18.07.2012 - 16:06
fonte
2

Quindi stai creando una classe con il solo scopo di poter usare un nome più breve? Non hai già abbastanza lezioni nel tuo sistema? I buoni sviluppatori di software lavorano duramente per rendere il loro sistema più facile da capire. Sembra che tu stia lavorando duramente per renderlo più complicato e difficile da capire.

    
risposta data 18.07.2012 - 17:43
fonte
1

Non c'è alcun problema con questo codice.

Se il PropertyName effettivo non richiama un processo a lunga esecuzione, dovrebbe essere OK.

Tuttavia, dovresti accedere direttamente alla proprietà. Non vedo quale sia il problema con l'utilizzo del nome completo.

    
risposta data 18.07.2012 - 15:20
fonte
0

Come accennato, non farà la differenza . Perché una volta che il codice è compilato in IL avrà quasi lo stesso successo sulle prestazioni. Forse ci sarebbe solo una piccola differenza (nano-secondi) nel tempo di compilazione.

    
risposta data 18.07.2012 - 15:53
fonte

Leggi altre domande sui tag