C# multiple dispatch based on argument?

Multi tool use
up vote
0
down vote
favorite
(I'm not looking for the entire answer)
Basically, our assignment was to implement several different types of numbers (integers, rationals, complex, reals) using the visitor pattern such that code like this
number N = new Frac(3,5),new Int(1),new Real(3.14159);
number sum = new Int(0);
foreach(number x in N) sum = sum.add(x);
will work.
The only hint we were given was that one way was to create a 2D array to somehow use to dispatch the functions? Given that info, though, I'm still unsure of how to proceed. Honestly it'd just be nice to see an example of what multiple dispatch with one argument looks like.
public class Int : Inumber
public int val;
public Int(int v) val=v;
public Int dispatch(Int x)return Int(x.val + this.val);
public Real dispatch(Real x)return Real(x.val + this.val);
public number add(Inumber x) x.dispatch(this)
I think the would happen somehow like this, but this still doesn't work.
Any comments at all would be appreciated
c# language-features dispatch double-dispatch multiple-dispatch
add a comment |
up vote
0
down vote
favorite
(I'm not looking for the entire answer)
Basically, our assignment was to implement several different types of numbers (integers, rationals, complex, reals) using the visitor pattern such that code like this
number N = new Frac(3,5),new Int(1),new Real(3.14159);
number sum = new Int(0);
foreach(number x in N) sum = sum.add(x);
will work.
The only hint we were given was that one way was to create a 2D array to somehow use to dispatch the functions? Given that info, though, I'm still unsure of how to proceed. Honestly it'd just be nice to see an example of what multiple dispatch with one argument looks like.
public class Int : Inumber
public int val;
public Int(int v) val=v;
public Int dispatch(Int x)return Int(x.val + this.val);
public Real dispatch(Real x)return Real(x.val + this.val);
public number add(Inumber x) x.dispatch(this)
I think the would happen somehow like this, but this still doesn't work.
Any comments at all would be appreciated
c# language-features dispatch double-dispatch multiple-dispatch
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
(I'm not looking for the entire answer)
Basically, our assignment was to implement several different types of numbers (integers, rationals, complex, reals) using the visitor pattern such that code like this
number N = new Frac(3,5),new Int(1),new Real(3.14159);
number sum = new Int(0);
foreach(number x in N) sum = sum.add(x);
will work.
The only hint we were given was that one way was to create a 2D array to somehow use to dispatch the functions? Given that info, though, I'm still unsure of how to proceed. Honestly it'd just be nice to see an example of what multiple dispatch with one argument looks like.
public class Int : Inumber
public int val;
public Int(int v) val=v;
public Int dispatch(Int x)return Int(x.val + this.val);
public Real dispatch(Real x)return Real(x.val + this.val);
public number add(Inumber x) x.dispatch(this)
I think the would happen somehow like this, but this still doesn't work.
Any comments at all would be appreciated
c# language-features dispatch double-dispatch multiple-dispatch
(I'm not looking for the entire answer)
Basically, our assignment was to implement several different types of numbers (integers, rationals, complex, reals) using the visitor pattern such that code like this
number N = new Frac(3,5),new Int(1),new Real(3.14159);
number sum = new Int(0);
foreach(number x in N) sum = sum.add(x);
will work.
The only hint we were given was that one way was to create a 2D array to somehow use to dispatch the functions? Given that info, though, I'm still unsure of how to proceed. Honestly it'd just be nice to see an example of what multiple dispatch with one argument looks like.
public class Int : Inumber
public int val;
public Int(int v) val=v;
public Int dispatch(Int x)return Int(x.val + this.val);
public Real dispatch(Real x)return Real(x.val + this.val);
public number add(Inumber x) x.dispatch(this)
I think the would happen somehow like this, but this still doesn't work.
Any comments at all would be appreciated
c# language-features dispatch double-dispatch multiple-dispatch
c# language-features dispatch double-dispatch multiple-dispatch
asked Nov 11 at 2:41
Jayke
12
12
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245391%2fc-sharp-multiple-dispatch-based-on-argument%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
W9R CDRZaNW,ik a o