Explicitly saying ref or out when invoking a function
BCS
ao at pathlink.com
Tue Aug 11 09:10:06 PDT 2009
Reply to Ary,
> In C# when you define a function that takes an out or ref parameter,
> when invoking that function you must also specify ref or out. For
> example:
>
> void fun(ref uint x, double y);
>
> uint a = 1;
> double b = 2;
> fun(ref a, b);
> When I first started using C# it really annoyed me that I had to put
> that keyword there just to get my program compiled. "I know what I'm
> doing", I thought. But later, when reading the code, I found it very
> helpful to know that my "a" could be changed when invoking "fun". As
> always, code is read much more times than written, and I think this
> little tips help better understand the code.
>
> What do you think?
>
It would make template programming harder.
template TplFn(alias fn)
{
void TplFn(T...)(T t)
{
fn(t); // what if fn has normal, ref and out args?
}
}
More information about the Digitalmars-d
mailing list