Sounds like you are implementing a virtual method table.
Virtual method table - Wikipedia
So to do it in C# you would have e.g. a dictionary<string, action> and dispatch the call thusly: dict[param]()
To make it testable, DI friendly you would encapsulate this logic in a class / interface with e.g. registerhandler(string, action) and execute(string) methods etc.
- Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
- Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
Collapse
You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:
- You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
- You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
- If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.
Logging in...
Previously on "C# interface method - generic vs object parameter"
Collapse
-
Yes that is the same concept. Lots of small files make implementing the same interface sticks to SOLID principles. If you start with the unit testing for the method and class you will quickly know if this is over kill or required due to the complexity of the case statement.Originally posted by jamsandwich View PostThanks for the reply.
I just thought of another idea...
How about using different classes to represent the different actions that the switch statement might have executed. I think that's what is known as "Replace Conditional With Polymorphism".
Replace Conditional with Polymorphism
Is that what you meant by Dependency Injection? Only problem I see is that it might lead to a lot of small classes. Maybe I could put them all in one file to save bloating out the solution?
Leave a comment:
-
Thanks for the reply.Originally posted by BlueSharp View PostPersonally I would avoid the switch statement and consider alternatives first you could use Dependency Injection to inject the behaviour of the method when the object is instantiated or pass the behaviour in using Func. But option 2 seems cleaner, instead of an object I would declare the method with an interface in param.
.net - Pass Method as Parameter using C# - Stack Overflow
I just thought of another idea...
How about using different classes to represent the different actions that the switch statement might have executed. I think that's what is known as "Replace Conditional With Polymorphism".
Replace Conditional with Polymorphism
Is that what you meant by Dependency Injection? Only problem I see is that it might lead to a lot of small classes. Maybe I could put them all in one file to save bloating out the solution?
Leave a comment:
-
Originally posted by jamsandwich View PostIf I want to create a C# interface with a general "DoProcessing" method that then calls other methods depending on the argument(s) passed in, which is better:
1) Generics, for example:
interface IMyInterface<T>
{
void DoProcessing(T myParam1, string myParam2)
{
// Maybe have a switch statement here to call various methods depending on what value myParam2 has.
}
}
2) Object parameter, for example:
interface IMyInterface
{
void DoProcessing(object myParam1, string myParam2);
{
// Maybe have a switch statement here to call various methods depending on what value myParam2 has.
}
}
For both of the above, the second parameter (myParam2) might be a method name or enum for some kind of state (e.g. "busy", "idle", "blocked").
Personally I would avoid the switch statement and consider alternatives first you could use Dependency Injection to inject the behaviour of the method when the object is instantiated or pass the behaviour in using Func. But option 2 seems cleaner, instead of an object I would declare the method with an interface in param.
.net - Pass Method as Parameter using C# - Stack Overflow
Leave a comment:
-
C# interface method - generic vs object parameter
If I want to create a C# interface with a general "DoProcessing" method that then calls other methods depending on the argument(s) passed in, which is better:
1) Generics, for example:
interface IMyInterface<T>
{
void DoProcessing(T myParam1, string myParam2)
{
// Maybe have a switch statement here to call various methods depending on what value myParam2 has.
}
}
2) Object parameter, for example:
interface IMyInterface
{
void DoProcessing(object myParam1, string myParam2);
{
// Maybe have a switch statement here to call various methods depending on what value myParam2 has.
}
}
For both of the above, the second parameter (myParam2) might be a method name or enum for some kind of state (e.g. "busy", "idle", "blocked").Tags: None
- Home
- News & Features
- First Timers
- IR35 / S660 / BN66
- Employee Benefit Trusts
- Agency Workers Regulations
- MSC Legislation
- Limited Companies
- Dividends
- Umbrella Company
- VAT / Flat Rate VAT
- Job News & Guides
- Money News & Guides
- Guide to Contracts
- Successful Contracting
- Contracting Overseas
- Contractor Calculators
- MVL
- Contractor Expenses
Advertisers
Contractor Services
CUK News
- King’s Speech 2026 including a welcome Late Payments Bill still leaves contractors short Today 04:42
- Getting a mortgage when you're a contractor. The system wasn't built for you. Is that finally changing? May 22 06:11
- How deepfake AI contractors threaten umbrella company supply chains under JSL May 20 06:31
- Mileage rates review: Will the first AMAP rethink in 15 years benefit contractors? May 19 05:57
- What is a Forward Deployed Engineer (FDE), and are FDE jobs for IT contractors ripe? May 18 04:43
- IT contractor demand lunged towards growth in April 2026 May 13 04:48
- What does PGMOL’s win over HMRC mean for contractors? May 12 07:25
- Contractors eyeing mortgages ‘unrealistic about BoE’s 3.75% hold decision’ May 11 07:50
- The fake job problem is getting worse. Are contractors a particularly easy target? May 8 07:49
- Government policy on freelancing is stopping the contractor model from doing its thing May 7 08:12

Leave a comment: