Skip to content

Commit 554ce7b

Browse files
authored
Small grammar fixes
1 parent 22c1aa0 commit 554ce7b

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

concepts/structs/about.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# About
22

3-
C# `struct`s are closely related `class`s.
3+
C# `struct`s are closely related to `class`es.
44
They have state and behavior.
55
They can have the same kinds of members: constructors, methods, fields, properties, etc.
66

77
Fields and properties can be simple types, `struct`s or reference types.
8-
`struct`s observe the same rules about scope, read/write rules and access levels as do `class`s.
8+
`struct`s observe the same rules about scope, read/write rules and access levels as do `class`es.
99

1010
```csharp
1111
enum Unit
@@ -38,7 +38,7 @@ new Weight(77.5, Unit.Kg).ToString();
3838
One of the main things to remember is that when one struct is assigned to a variable or passed as a parameter the values are copied across so changes to the original variable will not affect the copied one and vice versa.
3939
In summary, `struct`s are **value types**.
4040

41-
This [article][class-or-struct] discusses the differences between `struct`s and `class`s.
41+
This [article][class-or-struct] discusses the differences between `struct`s and `class`es.
4242
You will see from the article that `struct`s tend to be lightweight and [immutable][structs-immutable] although this guidance is not enforced (by default) by the compiler or runtime.
4343

4444
There are a couple of things that you will come up against (and about which the compiler will remind you):
@@ -63,15 +63,15 @@ Although `struct`s cannot be derived from other `struct`s they can implement int
6363

6464
## Equality
6565

66-
Equality testing for `struct`s can often be much simpler than that for `class`s as it simply compares fields for equality by default.
66+
Equality testing for `struct`s can often be much simpler than that for `class`es as it simply compares fields for equality by default.
6767
There is no need to override `object.Equals()` (or `GetHashCode()`).
6868
Remember that if you are relying on `Object.GetHashCode()` you must still ensure that the fields involved in generating the hash code (i.e. all the fields) must not change while a hashed collection is use.
6969
Effectively, this means that structs used in this way should be immutable.
7070

7171
In contrast to the method, `Equals()`, there is no default implementation of the equality operators, `==` and `!=`.
7272
If your `struct` needs them then you will have to implement them.
7373

74-
On the other hand, this [article][equality] describes how performance can be optimised by creating your own custom `Equals()` and `GetHashCode()` method as is often done with `class`s.
74+
On the other hand, this [article][equality] describes how performance can be optimised by creating your own custom `Equals()` and `GetHashCode()` method as is often done with `class`es.
7575
The difference in the case of this exercise was about 20% in a not very rigorous comparison but that may be on the low side because all the fields are of the same type - see below.
7676

7777
There are discussions on the [web][equality-performance] about speed improvements, where the `Equals()` method is not overridden, if all fields are of the same type.

0 commit comments

Comments
 (0)