I've read around about const
and static readonly
fields. We have some classes which contain only constant values. They are used for various things around in our system. So I am wondering if my observation is correct:
Should these kind of constant values always be static readonly
for everything that is public? And only use const
for internal
/protected
/private
values?
What do you recommend? Should I maybe even not use static readonly
fields, but rather use properties maybe?
Best Answer
public static readonly
fields are a little unusual;public static
properties (with only aget
) would be more common (perhaps backed by aprivate static readonly
field).const
values are burned directly into the call-site; this is double edged:If the value will never change, then const is fine -
Zero
etc make reasonable consts ;p Other than that,static
properties are more common.