Click here to Skip to main content
15,888,984 members
Home / Discussions / C#
   

C#

 
GeneralRe: Generics question Pin
Pete Burkindine14-Aug-10 17:25
Pete Burkindine14-Aug-10 17:25 
GeneralRe: Generics question Pin
PIEBALDconsult14-Aug-10 18:19
mvePIEBALDconsult14-Aug-10 18:19 
GeneralRe: Generics question Pin
Pete Burkindine14-Aug-10 18:31
Pete Burkindine14-Aug-10 18:31 
GeneralRe: Generics question [modified] Pin
PIEBALDconsult14-Aug-10 18:35
mvePIEBALDconsult14-Aug-10 18:35 
GeneralRe: Generics question Pin
Pete Burkindine14-Aug-10 18:46
Pete Burkindine14-Aug-10 18:46 
GeneralRe: Generics question Pin
PIEBALDconsult14-Aug-10 18:49
mvePIEBALDconsult14-Aug-10 18:49 
GeneralRe: Generics question Pin
Pete Burkindine14-Aug-10 19:12
Pete Burkindine14-Aug-10 19:12 
GeneralRe: Generics question Pin
PIEBALDconsult14-Aug-10 19:46
mvePIEBALDconsult14-Aug-10 19:46 
Probably.

I think you mentioned having your class instantiate items for its dictionary. Wouldn't your client classes simply pass items in?


Anyway, consider this:

public class ItemStore
{
    private readonly System.Collections.Generic.Dictionary<string,object> dic =
        new System.Collections.Generic.Dictionary<string,object>
        (
            System.StringComparer.CurrentCultureIgnoreCase
        ) ;

    public void
    Add
    (
        string Key
    ,
        object Item
    )
    {
        dic.Add ( Key , Item ) ;

        return ;
    }

    public T
    GetItem<T>
    (
        string Key
    )
    {
        return ( (T) dic [ Key ] ) ;
    }

    public bool
    Remove
    (
        string Key
    )
    {
        return ( dic.Remove ( Key ) ) ;
    }
}


ItemStore s = new ItemStore() ;

s.Add ( "name"   , "James Bond" ) ;
s.Add ( "number" , 007          ) ;

System.Console.WriteLine ( s.GetItem<string> ( "NAME"   ) ) ;
System.Console.WriteLine ( s.GetItem<int>    ( "NUMBER" ) ) ;



P.S. I forgot to add locking. And you can make the class static if that suits your needs.
GeneralRe: Generics question Pin
Pete Burkindine15-Aug-10 4:01
Pete Burkindine15-Aug-10 4:01 
GeneralRe: Generics question Pin
PIEBALDconsult15-Aug-10 7:16
mvePIEBALDconsult15-Aug-10 7:16 
GeneralRe: Generics question Pin
PIEBALDconsult15-Aug-10 7:28
mvePIEBALDconsult15-Aug-10 7:28 
GeneralRe: Generics question Pin
PIEBALDconsult15-Aug-10 7:57
mvePIEBALDconsult15-Aug-10 7:57 
GeneralRe: Generics question Pin
Pete Burkindine15-Aug-10 9:01
Pete Burkindine15-Aug-10 9:01 
AnswerRe: Generics question Pin
PIEBALDconsult14-Aug-10 15:32
mvePIEBALDconsult14-Aug-10 15:32 
AnswerProposed Solutions [modified] Pin
Pete Burkindine14-Aug-10 17:38
Pete Burkindine14-Aug-10 17:38 
QuestionUser Control Pin
humayunlalzad14-Aug-10 8:50
humayunlalzad14-Aug-10 8:50 
AnswerRe: User Control Pin
Luc Pattyn14-Aug-10 8:55
sitebuilderLuc Pattyn14-Aug-10 8:55 
AnswerRe: User Control Pin
OriginalGriff14-Aug-10 9:30
mveOriginalGriff14-Aug-10 9:30 
GeneralRe: User Control Pin
humayunlalzad15-Aug-10 5:05
humayunlalzad15-Aug-10 5:05 
Questionoutlook folder Pin
michaelgr114-Aug-10 4:46
michaelgr114-Aug-10 4:46 
Questiondatat base program user odbc driver in C# .net Pin
DKRAUT14-Aug-10 4:02
DKRAUT14-Aug-10 4:02 
AnswerRe: datat base program user odbc driver in C# .net Pin
Dan Mos14-Aug-10 4:07
Dan Mos14-Aug-10 4:07 
AnswerRe: datat base program user odbc driver in C# .net Pin
Eddy Vluggen14-Aug-10 4:22
professionalEddy Vluggen14-Aug-10 4:22 
Questioncant create an xml file Pin
igalep13214-Aug-10 0:18
igalep13214-Aug-10 0:18 
AnswerRe: cant create an xml file Pin
Abhishek Sur14-Aug-10 0:30
professionalAbhishek Sur14-Aug-10 0:30 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.