I am currently reading Effective C# and found the following line very confusing:
Last, but certainly not least, you can use interfaces to create const and nonconst versions of an interface:
What are and nonconst versions of an interface? And where would we use this?
Supporting code:
public interface IConstNameValuePair { object Name { get; } object Value { get; } } public interface INameValuePair { object Value { get; set; } } // Usage: public class Stuff : IConstNameValuePair, INameValuePair { private string _name; private object _value; #region IConstNameValuePair Members public object Name { get { return _name; } } object IConstNameValuePair.Value { get { return _value; } } #endregion #region INameValuePair Members public object Value { get { return _value; } set { _value = value; } } #endregion }