I just started using Resharper and I'm getting the "Redundant check before assignment" warning and I'd like to know if the runtime really does check for equality and skip reassigning the value. I've seen the other posts about immutable or primitive or complex values and the cost involved in checking for equality vs. the cost of re-assigning equal values, and that's not my concern.
My concern is that the when setter on one property calls the setter on a second property and that second setter is costly because of a network call, for example. If the runtime does not actually check for equality before assignment, I'd need to do it myself to prevent the unnecessary second setter from running. If it does check for equality and not re-assign, I'd rather not do the redundant check to improve performance and readability.
So, does .NET 4.7 check property values before assignment?