Pure functions warning when dealing with C# with Example



Pure functions warning when dealing with C# with Example

DateTime 
Wikipedia currently defines a pure function as follows: 
1. The function always evaluates the same result value given the same argument value(s). The function result 
value cannot depend on any hidden information or state that may change while program execution proceeds 
or between different executions of the program, nor can it depend on any external input from I/O devices . 
2. Evaluation of the result does not cause any semantically observable side effect or output, such as mutation 
of mutable objects or output to I/O devices 
As a developer you need to be aware of pure methods and you will stumble upon these a lot in many areas. One I 
have seen that bites many junior developers is working with DateTime class methods. A lot of these are pure and if 
you are unaware of these you can be in for a suprise. An example: 
DateTime sample = new DateTime(2016, 12, 25); 
sample.AddDays(1); 
Console.WriteLine(sample.ToShortDateString()); 
Given the example above one may expect the result printed to console to be '26/12/2016' but in reality you end up 
with the same date. This is because AddDays is a pure method and does not affect the original date. To get the 
expected output you would have to modify the AddDays call to the following: 
sample = sample.AddDays(1); 

0 Comment's

Comment Form

Submit Comment