Answer-ID
  • Întrebări
  • Tag-uri
  • Categorii
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 Jared
Jared

Organizarea metodelor de extindere

Cum organizați metodele de extindere? Spuneți dacă am avut extensii pentru clasa de obiecte și pentru clasa de șir sunt tentat să despart aceste metode de extensie în clase IE:

public class ObjectExtensions
{
    ...
}

public class StringExtensions
{
    ...
}

fac acest lucru prea complicat sau are sens?

19 2008-09-18T20:41:26+00:00 2
Programare
c#
code-organization
extension-methods
Comentarii la întrebare (0)
Geir-Tore Lindsve
18 septembrie 2008 в 8:46
2008-09-18T20:46:52+00:00
Mai mult
Sursă
Editează
#96771

Există două modalități prin care am organizat metodele de extensie pe care le folosesc,

1) Dacă extensia este specifică proiectului pe care lucrez, atunci îl păstrez în același proiect/ansamblu, dar în propriul spațiu de nume.

2) Dacă prelungirea este de așa natură încât să o folosesc sau să o folosesc și în alte proiecte, atunci le-am separat într-un ansamblu comun pentru extensii.

Cel mai important lucru pe care trebuie să-l țineți cont este, care este domeniul de aplicare pe care îl voi folosi? Organizarea lor nu este dificilă dacă țin doar acest lucru în minte.

0
0
Comentarii (0)
Travis Illig
18 septembrie 2008 в 8:48
2008-09-18T20:48:31+00:00
Mai mult
Sursă
Editează
#96788

Am organizat metode de extensie utilizând o combinație de spațiu de nume și nume de clasă și este similar cu modul în care descrieți în întrebare.

În general, în soluția mea am un fel de "asamblare primară", care oferă majoritatea funcțiilor comune (cum ar fi metodele de extensie). Vom numi acest ansamblu "cadru" de dragul discuțiilor.

În cadrul ansamblului cadru, încerc să imite spațiile de nume ale lucrurilor pentru care am metode de extensie. De exemplu, dacă extind System.Web.HttpApplication, aș avea un spațiu de nume "Framework.Web". Clase precum "String" și "Object", care se află în spațiul de nume "System", se traduc în spațiul de nume "Framework" rădăcină din acel ansamblu.

În cele din urmă, denumirea merge în funcție de liniile pe care le-ați specificat în întrebare - numele de tip cu "Extensii" ca sufix. Aceasta generează o ierarhie de clase astfel:

  • Framework (namespace)
    • Framework.ObjectExtensions (class)
    • Framework.StringExtensions (class)
    • Framework.Web (namespace)
      • Framework.Web.HttpApplicationExtensions (class)

Beneficiul este că, dintr-o perspectivă de întreținere, este foarte ușor să găsiți mai târziu metode de extensie pentru un anumit tip.

0
0
Comentarii (0)
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
KO
RU
© Answer-ID 2021
Sursă
https://stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire