Pages

c sharp : DATA STRUCTURES


DATA STRUCTURES

There are various ways of grouping sets of data together in C#.
Enumerations
An enumeration is a data type that enumerates a set of items by assigning to each of them an identifier (a name), while exposing an underlying base type for ordering the elements of the enumeration. The underlying type is int by default, but can be any one of the integral types except for char.
Enumerations are declared as follows:
enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday };
The elements in the above enumeration are then available as constants:
Weekday day = Weekday.Monday;
if (day == Weekday.Tuesday)
{
Console.WriteLine("Time sure flies by when you program in C#!");
}
If no explicit values are assigned to the enumerated items as the example above, the first element has the value 0, and the successive values are assigned to each subsequent element. However, specific values from the underlying integral type can be assigned to any of the enumerated elements:
enum Age { Infant = 0, Teenager = 13, Adult = 18 };
Age age = Age.Teenager;
Console.WriteLine("You become a teenager at an age of {0}.", (int)age);
The underlying values of enumerated elements may go unused when the purpose of an enumeration is simply to group a set of items together, e.g., to represent a nation, state, or geographical territory in a more meaningful way than an integer could. Rather than define a group of logically related constants, it is often more readable to use an enumeration.
It may be desirable to create an enumeration with a base type other than int. To do so, specify any integral type besides char as with base class extension syntax after the name of the enumeration, as follows:
enum CardSuit : byte { Hearts, Diamonds, Spades, Clubs };
Structs
Structures (keyword struct) are light-weight objects. They are mostly used when only a data container is required for a collection of value type variables.
24 | C# Programming Data Structures
Structs are similar to classes in that they can have constructors, methods, and even implement interfaces, but there are important differences. Structs are value types while classes are reference types, which means they behave differently when passed into methods as parameters. Another very important difference is that structs cannot support inheritance. While structs may appear to be limited with their use, they require less memory and can be less expensive if used in the proper way.
A struct can, for example, be declared like this:
struct Person
{
public string name;
public System.DateTime birthDate;
public int heightInCm;
public int weightInKg;
}
The Person struct can then be used like this:
Person dana = new Person();
dana.name = "Dana Developer";
dana.birthDate = new DateTime(1974, 7, 18);
dana.heightInCm = 178;
dana.weightInKg = 50;
if (dana.birthDate < DateTime.Now)
{
Console.WriteLine("Thank goodness! Dana Developer isn't from the future!");
}
It is also possible to provide constructors to structs to make it easier to initialize them:
using System;
struct Person
{
string name;
DateTime birthDate;
int heightInCm;
int weightInKg;
public Person(string name, DateTime birthDate, int heightInCm, int weightInKg)
{
this.name = name;
this.birthDate = birthDate;
this.heightInCm = heightInCm;
this.weightInKg = weightInKg;
}
}
public class StructWikiBookSample
{
public static void Main()
{
Person dana = new Person("Dana Developer", new DateTime(1974, 7, 18), 178, 50);
}
}

0 comment:

إرسال تعليق

Link With in

Related Posts Plugin for WordPress, Blogger...