Getting rid of function's argument
Posted
by
Max
on Stack Overflow
See other posts from Stack Overflow
or by Max
Published on 2012-11-23T22:26:10Z
Indexed on
2012/11/23
23:04 UTC
Read the original article
Hit count: 146
It is better to explain my intention with code. So right now I have the following code:
class A, IInterfaceUsedByB
{
}
class B
{
void func(A someObject)
{
func2(someObject, 1);
func3(someObject, "string");
func4(someObject, new MyObject());
}
func2(A someObject, int val);
func3(A someObject, string val);
func4(A someObject, C val);
}
Where func2
, func3
, func4
do need references to someObject. I want to change this to
void func()
{
with(someObject,
() =>
{
func2(1);
func3("string");
func4(new MyObject());
}
);
}
Or even better to
void func(someObject)
{
func2(1);
func3("string");
func4(new MyObject());
}
So that I don't have to drag this someObject around, but I should still be able to use it inside func2,3,4. I can use any of the three languages (C#, F# or IronPython) for this.
UPDATE In the ideal solution class B would be independent of A. func*
functions only depend on a small interface of A consisting of 2 methods.
© Stack Overflow or respective owner