Part 45 C# Tutorial Why Enums
Enums are strongly typed constants.
If a program uses set of integral numbers, consider replacing them with enums. Otherwise the pragram becomes less
Readable Maintainable
Part 46 C# Tutorial Enums Example
public enum gender
{
male,
female
}
Part 47 C# Tutorial Enums in c#
If a program uses set of intergral numbers, consider replacing them with enums,which makes the program more readable and maintainable
1,Enums are enumerations.
2,Enums are strongly typed constants(常量). Hence(因此),an explicit(显式) cast is needed to convert from enum type to an integral type and vice versa.Also, an enum of one tpe cannot be implicitly(隐式) assigned(指定) to an enum of another type even though the underlying value of their members are the same.
3,the default underlying type of an enum is int.
4, the defalut value for first element is ZERO and gets incremented(递增) by 1.
5,It is possible to customize the underlying type and values.
6,Enums are value types.
7,Enum keyword(all small letteres) is used to create enumerations, where as Enum class,contains static GetValues() and Get Names() methods which can be used to list Enum underlying type values and Names.
Part 48 C# Tutorial Difference between Types and Type Members
Part 49 C# Tutorial Access Modifiers in C#
Part 50 C# Tutorial Internal and Protected Internal Access Modifiers in C#
Part 51 C# Tutorial Access Modifiers for types
Part 52 C# Tutorial Attributes in C#
Part 53 C# Tutorial Reflection in C#
Part 54 C# Tutorial Reflection Example
here is the code
private void btnDiscover_Click(object sender, EventArgs e)
{
lbMethods.Items.Clear();
lbProperties.Items.Clear();
lbConstructor.Items.Clear();
string typeName = txtTypeName.Text.Trim();
Type t = Type.GetType(typeName);
if (t == null)
{
MessageBox.Show("Type Is No Exit, Please Enter A Right Type!", "Warnning", MessageBoxButtons.OK);
txtTypeName.Clear();
txtTypeName.Focus();
}
else
{
MethodInfo[] methods = t.GetMethods();
PropertyInfo[] properties = t.GetProperties();
ConstructorInfo[] constructors = t.GetConstructors();
foreach (var method in methods)
{
lbMethods.Items.Add(string.Concat(method.ReturnType.Name," ", method.Name));
}
foreach (var property in properties)
{
lbProperties.Items.Add(string.Concat(property.PropertyType.Name, " ", property.Name));
}
foreach (var constructor in constructors)
{
lbConstructor.Items.Add(constructor.ToString());
}
}
}
Part 55 C# Tutorial Late binding using reflection