.NET Answers

ASP.NET, HTML, CSS, Visual Studio, CSharp, VB.NET and other programming items of interest.
Subscribe
  • Home
  • About Me
  • Advertising
  • Click Here to Ask a question
    • Privacy Policy
  • Site Map

Readonly variables in CSharp? Really?!

October 29, 2008 By: Dave

A lone oryx antelope. I’m sure most of you are familiar with the keyword “const,” which allows you to declare a variable and give it a value and assures that no other code will change the value.

const int v = 23;

public void Foo()
{
    // This causes a compile error
    v = 22;
}

But what about the times when you need something that kind of works like a const but needs to be initialized by the constructor?

That’s what the readonly modifier is for.

class ReadOnlyDemo
{
    readonly int v = 23;
    public ReadOnlyDemo()
    {
        // This is legal
        v = 22;
    }

    public ReadOnlyDemo(int x)
    {
        // This is also legal
        v = x;
    }

    public void Foo()
    {
        // This still causes an error
        v = 25;
    }
}

This gives you the best of both worlds: a variable you can assign at object startup and a variable that can’t be messed with in the rest of your code or in someone else’s code.

 

Other post in Advanced CSharp
  • Two Interfaces. Same Method. Two meanings. - September 29th, 2008
  • Making values nullable - October 9th, 2008
  • CSharp's Property Shortcuts - October 23rd, 2008
  • Readonly variables in CSharp? Really?! - October 29th, 2008
  • Dispose with Using - November 10th, 2008
  • Delegates in .NET - December 4th, 2008
  • Using Sealed in CSharp - December 8th, 2008
  • CSharp checked and unchecked - December 11th, 2008
  • Advanced CSharp - unsafe mode - December 15th, 2008
  • Volatile variables and CSharp threads - December 22nd, 2008
  • What is the global keyword in CSharp? - December 29th, 2008
  • CSharp fixed keyword - January 5th, 2009
  • using - There's more there than you are using - February 2nd, 2009
  • Stackalloc in CSharp - February 16th, 2009
  • Removing Warnings from CSharp Compile Cycle - March 10th, 2009
  • && vs & and | vs ||... What's the difference? - March 16th, 2009
  • Advanced CSharp - yield - March 25th, 2009
  • Just say “No!” to C# Regions? Really?! - April 16th, 2009
  • C# “” better than string.Empty? - April 20th, 2009
  • .Net String Pool – Not Just For The Compiler - April 22nd, 2009
  • CSharp ?? Operator - May 18th, 2009
  • Using VB.NET From CSharp - July 1st, 2009

If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!

Related Post

  • Renaming Properties, Methods and Variables
  • Using VB.NET From CSharp
  • iTextSharp – Adding Images
Bookmark to:

Add to Del.icio.us Add to digg Add to DotNetKicks Add to DZone Add to Facebook Add to Slashdot Add to Stumble Upon Add to Technorati
Hide Sites
Tags: csharp, readonly, variables

One Response to “ Readonly variables in CSharp? Really?! ”

  1. # 1 Visual C# Kicks Says:
    November 3rd, 2008 at 3:20 pm

    That explains it well, I was wondering what the point of it was

← jQuery Simple Selectors
DotNetNuke Modules – Creating the PA →
  • Search

  • Subscribe

    U COMMENT
    I FOLLOW

    Subscribe in a reader

    OR

    Subscribe via e-mail

    Enter your email address: 

    Delivered by FeedBurner

     

  • Follow Me

    • Twitter
    • FaceBook
    • Digg
    • StumbleUpon
    • Propeller
    • Delicious
    • Plaxo

     

  • Recent Posts

    • ASUS Eee PC 1005HA-PU1X-BK Black Netbook
    • jQuery – Date Picker
    • Using VB.NET From CSharp
    • iTextSharp – Adding Images
    • Hungarian Notation – Use What Works, Spit Out The Bones
    • Pre Order Windows 7
    • jQuery Dialog – With Validation Controls
    • iTextSharp – The easy way
    • Structure of my ASP.NET Web Applications
    • 35% Off Accronis True Image 2009 Home
    • VB.NET Hide Module Name
    • ASP.NET/VB.NET – Video Training
    • Does jQuery Make Us Lazy?
    • PDFs Using iTextSharp
    • Programming SEO – Ping



  • Advertise on this site through Lake Quincy Media
  • DotNetNuke Sponsor

     

    Most Valuable Blogger
  • Sponsor

  • Categories

    • Advanced CSharp
    • Advanced VB.NET
    • ASP.NET MVC
    • Did you know
    • DotNetNuke – Module Development
    • DotNetNuke – Skinning
    • internationalization
    • iTextSharp
    • jQuery
    • none
    • Seach Engine Optimization
    • Silverlight
    • SQL For Programmers
    • Twitter
    • winforms
  • Cloud

    .net ajax architecture asp.net book books containers csharp css dal dataset datasets dotnetnuke events gridview images internationalization internet explorer javascript jQuery json linq listview modules ms-sql MVC objectdatasource programming reflection seo Silverlight skinning sql testing tsql tutorial Twitter twitterizer vb.net video view Vista visual studio webservice WordPress
  • Archives

    • July 2009
    • June 2009
    • May 2009
    • April 2009
    • March 2009
    • February 2009
    • January 2009
    • December 2008
    • November 2008
    • October 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • November 2007
    • October 2007
  • Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org
    • Privacy Policy
  • Calendar

    October 2008
    S M T W T F S
    « Sep   Nov »
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  
  • Blogroll

    • Alvin Ashcraft’s Morning Dew
    • ASP.NET Consulting
    • Life Hacker
    • Remember Anything
    • The Price of Their Toys
    • Uncategorized Thought


.NET Answers © 2007 - 2008 All Rights Reserved.
Entries and Comments.