Skip to Content
C# Language Pocket Reference
book

C# Language Pocket Reference

by Peter Drayton, Ben Albahari, Ted Neward
October 2002
Intermediate to advanced
128 pages
2h 53m
English
O'Reilly Media, Inc.
Content preview from C# Language Pocket Reference

Structs

A struct is similar to a class, with the following major differences:

  • A class is a reference type, while a struct is a value type. Consequently, structs are typically used to express simple types, in which value-type semantics are desirable (e.g., an assignment copies a value rather than a reference).

  • A class fully supports inheritance, whereas a struct can inherit only from an object and is implicitly sealed (in the runtime, structs actually inherit from System.ValueType). Both classes and structs can implement interfaces.

  • A class can have a destructor, and a struct cannot.

  • A class can define a custom parameterless constructor and initialize instance fields, while a struct cannot. The default parameterless constructor for a struct initializes each field with a default value (effectively zero). If a struct declares a constructor(s), then all of its fields must be assigned in that constructor call.

Here is a simple struct declaration:

struct Point {
  public int x, y;
}

To create a struct, you can use the new operator, which will initialize all the struct members to their defaults (zero in the case of x and y). If you do not use the new operator, you will need to initialize the struct members yourself. You can also use array declaration syntax to create an array of structs:

Point p1 = new Point(  );
Point p2;
p2.x = p2.y = 0;
Point[] points = new Point[3];
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

C# 5.0 Programmer's Reference

C# 5.0 Programmer's Reference

Rod Stephens
C# 10 Pocket Reference

C# 10 Pocket Reference

Joseph Albahari, Ben Albahari

Publisher Resources

ISBN: 059600429XErrata Page