Nick Sabalausky wrote:
"Christopher Wright" <dhase...@gmail.com> wrote in message
news:gv29vn$7a...@digitalmars.com...
Nick Sabalausky wrote:
"Christopher Wright" <dhase...@gmail.com> wrote in message
news:gv0p4e$uv...@digitalmars.com...
Nick Sabalausky wrote:
I can see certain potential benefits to the general way C# does
generics, but until the old (and I do mean old) issue of "There's an
IComparable, so why the hell won't MS give us an IArithmetic so we can
actually use arithmetic operators on generic code?" gets fixed (and at
this point I'm convinced they've never had any intent of ever fixing
that), I don't care how valid the reasoning behind C#'s general
approach to generics is, the actual state of C#'s generics still falls
squarely into the categories of "crap" and "almost useless".
IArithmetic is impossible in C# because operator overloads are static
methods, and interfaces cannot specify static methods.
Then how does IComparable work?
It uses a member function instead.
And they can't do the same for arithmetic?
I believe the rationale for using static functions is so that you can
add null to something. (The indexing operator, mind you, is a member
property, so this doesn't always hold.) Additionally, this gets rid of
opX_r.
In practice, I doubt anyone uses that. But it's too late to make that
change.