Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6152901
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T20:00:00+00:00 2026-05-23T20:00:00+00:00

I have found that People claim that using all readonly fields in a class

  • 0

I have found that People claim that using all readonly fields in a class does not necessarily make that class’s instance immutable because there are “ways” to change the readonly field values even after initialization (construction).

How? What ways?

So my question is when can we really have a “real” immutable object in C#, that I can safely use in threading?

Also do anonymous types create immutable objects? And some say LINQ uses immutable objecst internally. How exactly?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T20:00:01+00:00Added an answer on May 23, 2026 at 8:00 pm

    You’ve asked like five questions in there. I’ll answer the first one:

    Having all readonly fields in a class does not necessarily make that class’s instance immutable because there are “ways” to change the readonly field values even after construction. How?

    Is it possible to change a readonly field after construction?

    Yes, if you are sufficiently trusted to break the rules of read-only-ness.

    How does that work?

    Every bit of user memory in your process is mutable. Conventions like readonly fields might make certain bits appear to be immutable, but if you try hard enough, you can mutate them. For example, you can take an immutable object instance, obtain its address, and change the raw bits directly. Doing so might require a great deal of cleverness and knowledge of the internal implementation details of the memory manager, but somehow the memory manager manages to mutate that memory, so you can too if you try hard enough. You can also use “private reflection” to break various parts of the safety system if you are sufficiently trusted.

    By definition, fully trusted code is allowed to break the rules of the safety system. That’s what “fully trusted” means. If your fully trusted code chooses to use tools like private reflection or unsafe code to break the memory safety rules, fully trusted code is allowed to do that.

    Please don’t. Doing so is dangerous and confusing. The memory safety system is designed to make it easier to reason about the correctness of your code; deliberately violating its rules is a bad idea.

    So, is “readonly” a lie? Well, suppose I told you that if everyone obeys the rules, everyone gets one slice of cake. Is the cake a lie? That claim is not the claim “you will get a slice of cake”. That’s the claim that if everyone obeys the rules, you’ll get a slice of cake. If someone cheats and takes your slice, no cake for you.

    Is a readonly field of a class readonly? Yes but only if everyone obeys the rules. So, readonly fields are not “a lie”. The contract is, if everyone obeys the rules of the system then the field is observed to be readonly. If someone breaks the rules, then maybe it isn’t. That doesn’t make the statement “if everyone obeys the rules, the field is readonly” a lie!

    A question you did not ask, but perhaps should have, is whether “readonly” on fields of a struct is a “lie” as well. See Does using public readonly fields for immutable structs work? for some thoughts on that question. Readonly fields on a struct are much more of a lie than readonly fields on a class.

    As for the rest of your questions — I think you’ll get better results if you ask one question per question, rather than five questions per question.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

At every company I have worked at, I have found that people are still
I have found that creating a zip file using the Zip task provided by
I have found some broken threads across the web where people claim to be
I have heard people state that Code Generators and T4 templates should not be
I have found that my HTML is, to be honest, very clunky. Small, simple
I have found that there is generally a singe type or namespace that takes
I have found that how to determine what columns are primary key column of
I have found that I often have to implement some sort of a scheduler
We have found that with our memcache some keys tend to be lost. To
I have done various tests and I have found that the jQuery validate function

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.