Thursday, September 06, 2018

.Net reflection is expensive in more ways than I thought...

Enter statements below.
csharp> var t = typeof(int);
csharp> Object.ReferenceEquals(t.AssemblyQualifiedName, t.AssemblyQualifiedName);
false
Every access to the AssemblyQualifiedName property does some lookup work… and returns a NEW copy of the string.

It’s _almost_ as if one might recommend caching every property, because you never know what it might be doing, and avoid creating auto properties (in place of public fields), so that you know when there is no need to cache the value.

No comments:

Popular Posts