I’ve done some small tests while writing the library to handle readonly objects in C#. Turns out that getting the value of a sub expression can be costly (since you have to compile the expression and execute). When just setting one property there can be a performance benefit of using the following syntax:
new MyClass(1, “2”).With(m => m.MyProperty, 3)
There might be some way of optimizing the code in order to get better performance for the form:
new MyClass(1, “2”).With(m => m.MyProperty == 3)
If there are only a few usages then the performance hit is probably negligible.
Do you want to send a comment or give me a hint about any issues with a blog post: Open up an issue on GitHub.
Do you want to fix an error or add a comment published on the blog? You can do a fork of this post and do a pull request on github.