On Wed, 29 May 2002 09:29:11 -0500, Tomas Restrepo <[EMAIL PROTECTED]> wrote:

>Jon,
>
>
>> In his excellent book Jeffrey Richter says the Microsoft guidelines
>> recommend operators are accompanied by a friendly public instance method
>> that calls the operator method internally. For example the suggested CLS
>> compliant name for operator + is Add. Does anyone know...
>>
>> /1/ why the friendly method should be an instance method rather than a
>> static method?
>
>I imagine because it's somewhat "simpler" and more natural to use?

But is it? An instance method has a natural asymmetry. The this operand is
treated differently to an argument for example. With a static method there
is no asymmetry. An instance method also suggests virtualness which I am
not convinced is a happy bedfellow of an operator. I think perhaps a
static method matches an operator better. Opinions?


>> /2/ why the C# compiler generates a static method called op_Addition for
>> operator+ rather than the recommended instance method called Add?
>
>Because that's the operator itself. IOW, Managed operators are nothing
more
>than static methods with a known name and marked with the specialname
>metadata attribute in the signature.

Yes. But why is it called op_Addition and not Add. Or to put it another
way, why is there a need for op_Addition _and_ Add? Couldn't the operator
be translated into a method with the recommended friendly name?

Cheers
JJ

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to