Qual è la filosofia / il ragionamento dietro i nomi dei metodi di casing Pascal di C #?

20

Sto appena iniziando a imparare C #. Venendo da uno sfondo in Java, C ++ e Objective-C, trovo che il caso Pascal di C # sia un nome univoco, e un po 'difficile da abituare all'inizio. Qual è il ragionamento e la filosofia dietro questo?

Suppongo che sia a causa delle proprietà di C #. A differenza di Objective-C, dove i nomi dei metodi possono essere esattamente uguali alle variabili di istanza, questo non è il caso di C #. Direi che uno degli obiettivi con proprietà (come lo è nella maggior parte dei linguaggi che lo supportano) è quello di rendere le proprietà veramente indistinguibili da variabili e metodi. Quindi, si può avere un "int x" in C #, e la proprietà corrispondente diventa X. Per garantire che proprietà e metodi siano indistinguibili, anche tutti i nomi di metodi che indoviniamo dovrebbero iniziare con una lettera maiuscola. (Questa è solo la mia ipotesi basata su ciò che so di C # finora - sto ancora imparando). Sono molto curioso di sapere come è nata questa curiosa guida (dato che non è qualcosa che si vede nella maggior parte delle altre lingue in cui i nomi dei metodi dovrebbero iniziare con una lettera minuscola)

(EDIT: per caso Pascal, intendo PascalCase (che è fondamentalmente camelCase ma che inizia con una lettera maiuscola). I nomi dei metodi in genere iniziano con una lettera minuscola nella maggior parte delle lingue)

    
posta Nocturne 01.03.2011 - 20:10
fonte

6 risposte

27

È questione di gusti. Qualcuno una volta ha deciso di usare lo stile Pascal per i nomi ed è diventato uno standard.

Ho una vaga idea che fosse Anders Hejlsberg , che era l'architetto di Delfi, successore di Pascal. Lo stile del caso è lo stesso di C #.

    
risposta data 01.03.2011 - 20:15
fonte
19

Se stai chiedendo dei motivi, eccone uno direttamente dalla bocca del cavallo:

Storia intorno all'intelaiatura di Pascal e all'alloggiamento di cammelli articolo di Brad Abrams ai blog MSDN

In the initial design of the Framework we had hundreds of hours of debate about naming style. To facilitate these debates we coined a number of terms. With Anders Heilsberg (the original designer of Turbo Pascal) a key member of the design team, it is no wonder that we chose the term Pascal Casing for the casing style popularized by the Pascal programming language...

Pascal Casing convention capitalizes the first character of each word (including acronyms over two letters in length)...

Ecco le linee guida sulla progettazione: Linee guida di progettazione per sviluppatori di librerie di classi

These guidelines are intended to help class library designers understand the trade-offs between different solutions. There might be situations where good library design requires that you violate these design guidelines. Such cases should be rare, and it is important that you provide a solid justification for your decision. The section provides naming and usage guidelines for types in the .NET Framework as well as guidelines for implementing common design patterns...

    
risposta data 01.03.2011 - 20:49
fonte
7

Non conosco la filosofia, ma l'involucro Pascal sembra essere comune sulle piattaforme Microsoft da almeno giorni dell'API di Win32.

risposta data 01.03.2011 - 20:45
fonte
2

Non penso che dietro ci fosse una filosofia specifica. C'erano delle linee guida e c'erano molti punti che potevano averlo influenzato:

  • Volevano sbarazzarsi di qualsiasi notazione di prefisso (leggi ungherese qui)
  • Volevano che i membri locali / privati e i membri pubblici si distinguessero semplicemente leggendo i loro nomi.
  • Non volevano che il codice C # assomigliasse al codice Java (che usa pesantemente il caso cammello)
risposta data 01.03.2011 - 20:16
fonte
0

Non so che dietro al case ci sia una "filosofia" diversa da quella che è carina e compatta e può facilmente apparire come più parole senza usare caratteri di sottolineatura.

Negli ultimi decenni ci sono state molte varianti del case. Hanno spaziato da molto conciso (vedi C e la libreria C standard) a verboso con trattini bassi che separano ogni parola. Mentre la convenzione di denominazione delle librerie .NET è ancora piuttosto prolissa, penso che rimanga una via di mezzo per quanto riguarda l'involucro.

    
risposta data 01.03.2011 - 20:14
fonte
0

Prendendo un'ipotesi selvaggia (ma non irragionevole, IMHO) - Il design C # è stato supervisionato da Niklaus Wirth , l'inventore originale di Pascal. Vedi la connessione? ...:)

Curioso n. 1: ricordo positivamente l'annuncio di .NET e C # (sì, sono preistorico ...) e di come Microsoft si vantava di avere il nome di Wirth su C #. Eppure, le pagine di Wikipedia su entrambi (C # e Wirth) menzionano questo.

Curioso n. 2: sebbene sia chiamato PascalCase , è stato reso popolare dal compilatore TurboPascal (che alla fine è diventato Borland ), non dalla lingua stessa.

    
risposta data 01.03.2011 - 23:12
fonte

Leggi altre domande sui tag