Thursday, August 14, 2008

Viewstate and the C# ?? null-coalescing operator

The ?? (null coalescing) operator is a handy way to check whether a value is null, and if so return an alternate value.

I find it particularly useful in combination with viewstate for putting terse properties on user controls with default values.

E.g.
/// 
/// A Property that defaults to false unless set otherwise.
/// 
public bool SomeProperty
{
  get { return ViewState["viewstateKey"] as bool? ?? false; }
  set { ViewState["viewstateKey"] = new bool?(value); }
}

See Also: Scott Gu - The C# ?? null coalescing operator (and using it with LINQ)