C# Professional - Basics & OOP - Exercises

talent-agile
3,769 views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content
Previous: ValueTypes - Exercises

Using casting operators

With C#, you can define custom casting implementation between two types. This implementation will be used when casting from one type to the other in your code.

1
4
5
6
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// {...}
// User definition
// {...}
public class Program
{
public static void Main(string[] args)
{
var user = new User {
FirstName = "John",
LastName = "Doe"
};
// implict casting
string userAsString = user;
Console.WriteLine($"userAsString: {userAsString}");
// explicit casting
var otherUser = (User)userAsString;
Console.WriteLine("User:");
Console.WriteLine($" First name: {otherUser.FirstName}");
Console.WriteLine($" Last name: {otherUser.LastName}");
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exercise : Implement an implicit and explicit casting

In the following exercise, you have two classes, Car and Vehicle.

The goal is to implement an implicit casting of Car to Vehicle. The casting must respect these guidelines:

  • The Vehicle.Type property value should be "Car"
  • The Vehicle.Name property should use the car properties to display all car information with the following format : Brand / Model (Year) / License Plate
Implement implicit casting
1
7
8
9
10
11
12
13
14
15
16
17
18
·// {...}
public class Car
{
public string Brand { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public string LicensePlate { get; set; }
public static implicit operator Vehicle(Car car)
{
return null;
}
// {...}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Be careful when implementing custom casting operators. They can be useful is certain situations, but using them is not very intuitive and can be misleading.

Open Source Your Knowledge: become a Contributor and help others learn. Create New Content