Temperature standard arithmetic (WIP) - #575
Closed
angularsen wants to merge 10 commits into
Closed
Conversation
These are instead handled by standard arithmetic, now generated for Temperature.
Use ToString() and Enum.Parse() to get slightly more robust conversion without having to generate a switch statement for all cases.
OwnerAuthor
This text was removed from 3.x to 4.x migration wiki page and should be added back to a future migration page if we do complete this PR: Change Temperature arithmetic back to use base unit KelvinInstead of a special case for Temperature, we now have the exact same arithmetic as for other quantities. Temperaturecelsius30,celsius20;// Assume assigned..// Beforevarx=celsius30+celsius20;// Not possibleTemperatureDeltadeltaCelsius10=celsius30-celsius20;// delta 10 degrees Celsius// After - this can get confusing if you are working with Celsius or FahrenheitTemperaturecelsius323=celsius30+celsius20;Temperatureminus263Celsius=celsius30-celsius20;// For addition/subtraction when working with Celsius or Fahrenheit, you probably want to use TemperatureDeltaTemperatureDeltadeltaCelsius20=TemperatureDelta.FromDegreesCelsius(20);Temperaturecelsius50=celsius30+deltaCelsius20;Temperaturecelsius10=celsius30-deltaCelsius20;// Or use these convenience methodsTemperaturedeltaCelsius10=celsius30.ToDelta(celsius20);TemperatureDeltadeltaCelsius10=TemperatureDelta.FromTemperatures(celsius30,celsius20); |
angularsen
commented
Feb 13, 2019
OwnerAuthor
Closing this. We can keep the branch alive for some time and can always reopen the PR later. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Do not merge.
This change is still up for debate. See discussions in #518, #550 and #560.
Created this PR just to have all the work of #550 and #560 in one place in case we want to standardize temperature arithmetic later. We decided to postpone this for v4 as we couldn't agree on whether this change was for the better or not.
TemperatureDelta)Multiply()andDivide()methods-operator overloadTemperature.ToDelta(other)instance methodTemperatureDelta.FromTemperatures(left, right)static methodax + blinear relationship instead of just a factor conversionax).Fixes#518