c# - Add operator to third-party type? -
i have third-party library (mogre), in struct (vector3). add overload '+' operator (no override needed) type not sure how.
i cannot use extension methods operator want extend; class not sealed
not partial
either, if try , define again new operator overload conflicts.
is possible extend type this? best way it?
you cannot add operator overload third-party type -- class don't have ability edit. operator overloads must defined inside type operate on (at least 1 of args). since it's not type, can't edit it, , struct
s cannot extended.
but, if non-sealed class
, you'd have sub-class, ruin point because you'd have use subclass , not superclass operator, since can't define operator overload between base types...
public class { public int x { get; set; } } public class b : { public static operator + (a first, second) { // won't compile because either first or second must type b... } }
you overload between instances of subclass, you'd have use new subclass wherever wanted overload instead of original superclass, clunky , not want:
public class { public int x { get; set; } } public class b : { public static b operator + (b first, b second) { // this, you'd have use subclass b everywhere wanted // instead of original class a, may undesirable... } }
Comments
Post a Comment