Difference between revisions of "Struct"

esse quam videri
Jump to: navigation, search
m (added C#, corrected spelling, added some minor content)
Line 1: Line 1:
[[Category:IAM Classes]][[Category:Object Oriented Programming]]
+
[[Category:Object Oriented Programming]]
 
[[Category:Programming Language Concepts]]
 
[[Category:Programming Language Concepts]]
 
[[Category:C Sharp]]
 
[[Category:C Sharp]]
  
  
==Structs==
+
==C# Struct==
- remember these
+
C# structs are lightweight alternatives to classes.
from week 2
+
Structs do not support inheritance or destructors, and are value typed objects similar to ints bool etc... while classes are reference types.
 +
Structs are more memory efficient and and faster than classes.
  
Lightweight alternatives to classes. Structs do not support inheritance or destructors. Structs are value typed objects similar to ints bool etc... while classes are reference types. Structs are more memory efficient and and faster than classes.
 
 
Syntax
 
Syntax
  
Line 23: Line 23:
 
This is a pretty lightweight dog and is pretty useless as a dog (It's can't even bark what fun is that) so I won't make an example.
 
This is a pretty lightweight dog and is pretty useless as a dog (It's can't even bark what fun is that) so I won't make an example.
  
A good example of a stuct would be and something like a point. There may be many many points in a structure or graph and we would want the points
+
A good example of a struct would be and something like a point. There may be many many points in a structure or graph and we would want the points
 
to be a lightweight as possible. Since the point object won't have an methods this is a good time to use a struct.
 
to be a lightweight as possible. Since the point object won't have an methods this is a good time to use a struct.
  
Line 47: Line 47:
 
     }
 
     }
 
}</syntaxhighlight>
 
}</syntaxhighlight>
 
[[Category:IAM Classes]][[Category:Object Oriented Programming]]
 

Revision as of 17:16, 10 June 2019


C# Struct

C# structs are lightweight alternatives to classes. Structs do not support inheritance or destructors, and are value typed objects similar to ints bool etc... while classes are reference types. Structs are more memory efficient and and faster than classes.

Syntax

[ attributes] [access-modifiers] struct identifier [:interface-list {struct members}

struct Dog
{
 public string name;
 public string weight;
 public int age;
}

This is a pretty lightweight dog and is pretty useless as a dog (It's can't even bark what fun is that) so I won't make an example.

A good example of a struct would be and something like a point. There may be many many points in a structure or graph and we would want the points to be a lightweight as possible. Since the point object won't have an methods this is a good time to use a struct.

struct Point
{
    public int x;
    public int y;

    public Point(int x, int y)
    {
        this.x = x;
        this.y = y;
    }

    public Point Add(Point pt)
    {
        Point newPt;

        newPt.x = x + pt.x;
        newPt.y = y + pt.y;

        return newPt;
    }
}