Click here to Skip to main content
15,922,650 members
Home / Discussions / C#
   

C#

 
GeneralRe: Vb to C# Pin
DaveyM6931-Jan-08 20:55
professionalDaveyM6931-Jan-08 20:55 
GeneralRe: Vb to C# Pin
Guffa31-Jan-08 21:41
Guffa31-Jan-08 21:41 
GeneralRe: Vb to C# Pin
Guffa31-Jan-08 21:56
Guffa31-Jan-08 21:56 
GeneralRe: Vb to C# Pin
Vikram A Punathambekar1-Feb-08 1:47
Vikram A Punathambekar1-Feb-08 1:47 
GeneralRe: Vb to C# Pin
Pete O'Hanlon1-Feb-08 3:39
mvePete O'Hanlon1-Feb-08 3:39 
GeneralRe: Vb to C# Pin
Guffa1-Feb-08 5:11
Guffa1-Feb-08 5:11 
JokeRe: Vb to C# Pin
DavidNohejl1-Feb-08 6:17
DavidNohejl1-Feb-08 6:17 
GeneralRe: Vb to C# Pin
Guffa1-Feb-08 5:16
Guffa1-Feb-08 5:16 
Questionhow to call DLL function in generic method? Pin
vicky45731-Jan-08 9:32
vicky45731-Jan-08 9:32 
AnswerRe: how to call DLL function in generic method? Pin
S. Senthil Kumar1-Feb-08 6:02
S. Senthil Kumar1-Feb-08 6:02 
GeneralRe: how to call DLL function in generic method? Pin
vicky4571-Feb-08 6:58
vicky4571-Feb-08 6:58 
QuestionHow to assign DataView to Datatable Pin
ss.mmm31-Jan-08 9:27
ss.mmm31-Jan-08 9:27 
AnswerRe: How to assign DataView to Datatable Pin
J$31-Jan-08 9:38
J$31-Jan-08 9:38 
GeneralComboBox TextChanged Event firing unexpectedly [modified] Pin
DaveyM6931-Jan-08 8:29
professionalDaveyM6931-Jan-08 8:29 
GeneralThreading help Pin
daphne7531-Jan-08 8:21
daphne7531-Jan-08 8:21 
GeneralRe: Threading help Pin
Luc Pattyn31-Jan-08 11:03
sitebuilderLuc Pattyn31-Jan-08 11:03 
GeneralRe: Threading help Pin
daphne751-Feb-08 9:19
daphne751-Feb-08 9:19 
GeneralLogging Shutdown event in Windows Service Pin
abupsman31-Jan-08 7:46
abupsman31-Jan-08 7:46 
GeneralRe: Logging Shutdown event in Windows Service Pin
CKnig31-Jan-08 18:56
CKnig31-Jan-08 18:56 
QuestionHow to instantiate an object with a generic parameter? Pin
michal.kreslik31-Jan-08 7:31
michal.kreslik31-Jan-08 7:31 
AnswerRe: How to instantiate an object with a generic parameter? Pin
Giorgi Dalakishvili31-Jan-08 8:18
mentorGiorgi Dalakishvili31-Jan-08 8:18 
AnswerRe: How to instantiate an object with a generic parameter? Pin
Ennis Ray Lynch, Jr.31-Jan-08 9:00
Ennis Ray Lynch, Jr.31-Jan-08 9:00 
AnswerRe: How to instantiate an object with a generic parameter? Pin
Le centriste31-Jan-08 10:05
Le centriste31-Jan-08 10:05 
GeneralRe: How to instantiate an object with a generic parameter? Pin
michal.kreslik31-Jan-08 10:26
michal.kreslik31-Jan-08 10:26 
GeneralRe: How to instantiate an object with a generic parameter? Pin
Le centriste31-Jan-08 12:59
Le centriste31-Jan-08 12:59 
I reexamined your example, and her is what I suggest. Since you only have 2 well-known concrete classes, you may not need reflection for now, but generics is not the way to go either.

Make an interface:

public interface IFoo
{
    void MyMethod(); // Interface defines one method.
}


Then have some implementation, 2 in you example:

public class FooA : IFoo
{
    public void MyMethod() { Console.WriteLine("Hello from FooA"); }
}

public class FooB : IFoo
{
    public void MyMethod() { Console.WriteLine("Hello from FooB"); }
}


Then, using your example code:

class Program
{
    static void Main()
    {
        Console.WriteLine("Press 1 for FooA, press 2 for FooB:");
        ConsoleKeyInfo key = Console.ReadKey(true);            
        IFoo myFoo = null;            

        if (key.KeyChar == '1')            
        {                
            myFoo = new FooA();            
        }            
        else if (key.KeyChar == '2')            
        {                
            myFoo = new FooB();            
        }
        else
        {
            throw new InvalidOperationException("Wrong selection, you must select 1 or 2"); // Always have a watch dog.
        }

        myFoo.MyMethod(); // This prints which foo was created.
    }
}


This example is pretty simplistic, but you get the idea. In this particular case, you didn't need generics nor reflection. In real-life application, this is rarely sufficient. Read on reflection, I am sure there are quite good articles on this site.

Good luck.

-----

You seem eager to impose your preference of preventing others from imposing their preferences on others. -- Red Stateler, Master of Circular Reasoning and other fallacies

If atheism is a religion, then not collecting stamps is a hobby. -- Unknown

God is the only being who, to rule, does not need to exist. -- Charles Baudelaire

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.