if (obj.index == 0 && (f_mode > 3 || state[1] != null))
you need to know * What does obj represent * Under what circumstance does obj have an index of 0 * Why we are interested in that circumstance for what we are trying to achieve * What does f_mode represent * Under what circumstances is f_mode greater than 3 * etc etc etc
You need to know at least 10 things to understand it. However, if we break it up and replace it with
if (Membership.IsExpired)
then we need to know 0 things to understand it.
Is there some sort of principle that represents the number of things you need to know? A sort of Things You Need To Know To Understand This Index? Something that is a countable unit, so that you could say that one block of code has an index of 17 (i.e. you need to know 17 things to understand it) while another block of code has an index of 2?
We could start from a baseline assumption that the reader knows the coding principles themselves. The reader needs to know how an if-statement works, for example, but that would not be included in the index. One might argue about whether more obscure coding tricks should be included in the index or not.