What are lifted operators?

Viewed 13877

I was looking at this article and am struggling to follow the VB.NET example that explains lifted operators. There doesn't seem to be an equivalent C# example or tutorial. I don't have much experience with operator overloading in general, so trying to come to terms with the VB.NET equivalent whilst reading up on nullable types probably isn't the best place to start...

Would anyone be able to provide an explanation of lifted operators and how they are used by nullable types? Does it just mean that the nullable type does not itself overload operators and will use the operators from the underlying type that it represents?

There doesn't seem to be much information on SO about lifted operators, so hopefully this can help some others out too.

2 Answers

Lifted operators allow predefined and user-defined operators that work for non-nullable types to be used for their nullable forms as well.

int i = 5;
int? j = 6;

int? k = j + i;    // 11
int? q = i + null; // null - Shows a warning the result of the expression is always null of type int?
int r = i + null; // Throws an error the result of expression is always null of type int?
Related