Pass by ref for inline functions?

Ignoring the juvenile ad hominem attack.

You don’t know who Uncle Bob is and you think you have any credibility on good design?

As I said, it is “Not the best talk on the subject” primarily due to his poor example. But on the conceptual level he was spot on. And it is possible to have functions that mutate internal state (e.g. their own mutable variables and for the function to still be a pure function.

And a language feature that should not exist. To be perfectly precise it is not pass by reference that is the problem but mutating the state of the reference. For example, some functional languages have pass by reference, but do not allow state mutation so it doesn’t really matter.

And unfortunately, it is not as simple as if you don’t like it don’t use it. If it is there it will be used, encouraging the bad practices of the past.

C had raw pointers, why did they include them if they are so abhorent? Should they be included in modern languages just because some other language designer made the bad choice? No, we learn from the mistakes of the past and don’t keep repeating those mistakes just because some one else did it.

In the case of C#, probably mostly to support similar calls to the C/C++ code.