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

  • SEARCH
  • Home
  • 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 242521
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T20:50:40+00:00 2026-05-11T20:50:40+00:00

Can someone please tell me whether AddB below will result in less CLR allocations

  • 0

Can someone please tell me whether AddB below will result in less CLR allocations than AddA? I’ve examined disassembly and it looks to be the case but I’d like confirmation from the Experts please. Can someone Exchange this information with me please?

Cheers,
Charlie.


namespace A
{
    struct Vec2
    {
        public float x;
        public float y;

        public Vec2 AddA(Vec2 other)
        {
            Vec2 v = new Vec2(); // Reference variable
            v.x = x + other.x;
            v.y = y + other.y;
            return v;
        }

        public Vec2 AddB(Vec2 other)
        {
            Vec2 v;              // Value variable
            v.x = x + other.x;
            v.y = y + other.y;
            return v;
        }
    }
}
  • 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-11T20:50:41+00:00Added an answer on May 11, 2026 at 8:50 pm

    If Vec2 is a struct in both examples, by using Vec2 v = new Vec2(); you are not creating a reference to your struct, you are simply creating a new struct on your stack. If you don’t use the new keyword, your struct is nevertheless created on the stack and you can initialize each field separately.

    In that case, using the new keyword for a struct does’t make much sense if your constructor doesn’t accept some meaningful parameters to initialize the data in a single line.

    If the first method uses a class instead of a struct, then it does create an object for GC to collect, unlike the second method. Since v in AddB is allocated on the stack, it is not collected, the stack is simply popped when your method is finished.

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

Sidebar

Related Questions

Can someone please tell me: how long will data be there in a Global
Can someone please tell me why this code will not work? It does compile.
Can someone please tell me which of this 2 querys is better than the
Can someone please tell me why this doesn't work? I'm trying to show and
Can someone please tell me how I can implement the following line of pseudo-code.
Can someone please tell me ehy in IE 6 div is not in center.
can someone please tell why , Great Microsoft that created C# language and now
Can someone please tell me how to show all privileges/rules from a specific user
Can someone please tell me whats wrong with this code. I'm not getting complete
I can't seem to get this text to align vertically. Can someone please tell

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.