2009-05-22 18 views

risposta

11

Basta usare la convenzione di denominazione Pascal. Non attribuire la chiave a un modulo o alla classe. Generalizzalo in modo che possa essere riutilizzato.

Esempio: ReadWriteWarningMessage

Il punto separato convenzione funziona bene per le voci di menu. Ma per quanto riguarda le stringhe generate dinamicamente o i messaggi degli utenti.

0

Se si dispone di un nome valore pari lavoro in risorse come

CloseConfirmation - Vuoi chiudere la finestra senza salvare?

Aggiungere una nuova classe denominata Messaggi.

public static class Messages 
{ 
    public const String CloseConfirmation = "CloseConfirmation"; 
    public static String GetMessage(String messageId) 
    { 
     return //your namespace//.Properties.Resources.ResourceManager.GetString(messageId); 
    }} 

e per accedervi utilizzare

MessageBox.Show(Messages.GetMessage(Messages.CloseConfirmation)); 

Spero che questo vi aiuterà.

+1

Non si tratta di denominare le convenzioni delle chiavi ma di altre strategie su come accedere ai messaggi nei file di risorse. – Juri

+0

Grazie a Prajeesh, posso accedere alla risorsa senza problemi. Il mio problema è che posso avere centinaia di chiavi e voglio un modo semplice per cercarle. Mi sono imbattuto in una convenzione gerarchica come: Menu.File.Open come esempio per un sottotitolo di menu. Mi piace questo approccio, ma i decimali non vengono premolti quando si usano risorse fortemente tipizzate (che io sono). Grazie comunque... – Dawsy

4

hai considerato caratteri di sottolineatura come Menu_File_Open o qualcosa come Place_StringDescription? Attualmente mi occupo di uno schema in cui le cose comuni vanno in Common_ come Common_PressHereTo e visualizzano specifiche informazioni sul rispettivo posto come MainMenu_FileOpen. In generale, prima del carattere di sottolineatura digito dove appare la Risorsa e dopo la sottolineatura di un testo descrittivo.

2

Cerco di organizzarlo in modo simile agli spazi dei nomi che sto usando per impaginare la struttura del programma. Quindi se hai MyCompany.MyProduct.MyModule, le stringhe in quel modulo sarebbero MyModule_Blah_Blah. In questo modo sono unici all'interno del prodotto complessivo.

Problemi correlati