Upload
eben
View
25
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Tuc Goodwin [email protected]. Sams Teach Yourself Visual C# 2010 in 24 Hours Hour 3 : Understanding Classes and Object the C# Way. Agenda. Object and Component-Oriented Programming Classes in C# Scope and Accessibility Methods and Properties Nested and Partial Classes - PowerPoint PPT Presentation
Citation preview
Sams Teach YourselfVisual C# 2010 in 24 HoursHour 3 : Understanding Classes and Object the C# Way
Agenda
Object and Component-Oriented Programming
Classes in C# Scope and Accessibility Methods and Properties Nested and Partial Classes Static Classes and Data Object Initializers
Object and Component-Oriented Programming
A Class is a data structure that combines data storage with methods for manipulating the data.
Four primary OO concepts Encapsulation Abstraction Inheritance Polymorphism
Classes in C# Define the body of a class
with opening and closing curly braces { }
Scope – Where you declare a variable will determine who can see it. If you can see it, you can use it.
Declaration space – no two entities are allowed to have the same name
Class Contact{public int age;
Public void F(){ age = 18;}
public void G(){ int age; age = 21;}
}
Scope and Accessibility
Try It Yourself
Demo
Accessibility
Accessibility allows you to control visibility
Namespaces are not allowed to have any access modifiers. They are always public.
Classes default to internal, but are allowed to have either public or internal.
A nested class, a class defined inside of another class defaults to private accessibility
Class members default to private
Access ModifiersModifier Descriptionpublic Access is not limited.
protected Access is limited to the containing class or types derived from the containing class.
internal Access is limited to the containing assembly.
protected internal
Access is limited to the containing assembly or types derived from the containing classes.
private Access is limited to the containing class only.
“Black Diamond”
Best practice – Explicitly declaring accessibility indicates the choice was a conscious decision… i.e. self-documenting.
Be careful of “protected internal” because it is effectively one or the other. C# does not provide a concept of protected and internal.
Fields and Constants
Fields are variables that represented data associated with a class. Fields are private by default
Constants are immutable. They can be declared with access modifiers. They must be assigned a value as part of a declaration.
Try It Yourself
Demo
Properties
A property provides a simple way to access a field. This allows for encapsulation, hiding the internal details of the field.
Automatic Properties
Declaring a Property
Declaring a Calculated Property
Read-Only and Write-Only Properties How would you create a read-only
property? Remove the Set method leave only
the Get method How would you create a write-only
property? Remove the Get method leave only
the Set methodA simple mnemonic device:
Get – “Gives” Set – “Receives”
Try It Yourself
Demo
Methods
Methods (sometimes called functions) define and implement a behavior or action that can be performed.
Methods that returns a value Methods can accept zero or more
declared parameters
Parameters
Value parameters Reference parameters – uses the ref
keyword causes arguments to be passed by reference
Output parameters – uses the out keyword
Parameter Arrays
Parameter arrays are declared with the params keyword
A method’s formal parameter can include only a single parameter array
The parameter array must be the last parameter in the list of any parameter.
Overloaded Methods
…can vary only by signature.… can vary only by the number
and types of parameters
You can overload a method to have different return types, but you should avoid it to minimize the possibility for confusion…
Method Overloading
Try It Yourself
Demo
Optional vs. Required ParametersHow do you specify an optional
parameter?A parameter with a default
argument is an optional parameter
How do you specify a required parameter?
A parameter without a default argument is a required parameter
Instantiating a Class
You instantiate a class to create an instance
Contact c = new Contact(); A default constructor is the same
name as the class and does not return a value.
Declaring a Constructor Overload
How does a class refer to itself?The this keyword
Chaining Constructors
Chaining Constructors
Nested Classes
A nested class is one that is fully enclosed, or nested, inside another class declaration
They have at least the same access level as the containing class.
Partial Classes
Partial classes enable you to split the declaration of a class into multiple parts, typically across multiple files.
Partial classes are implemented in the same way as a normal class but contain the keyword partial.
Static Classes
A static class can have only a static constructor
Static classes can not be instantiated, that is multiple instances cannot be created.
Typically used for utility or helper methods.
Extension Methods
Extension methods must be declared in a non-nested, non-generic static class.
An extension method defined in the same assembly as the type being extended
Try It Yourself
Demo
Object Initializers
Suppose you want to instantiate and assign values as part of the constructor call?
This can be done by initializing the object at the same time.
Object Initializers example
Agenda
Object and Component-Oriented Programming
Classes in C# Scope and Accessibility Methods and Properties Nested and Partial Classes Static Classes and Data Object Initializers
Questions?
Future Schedule
Chapters Presenter Date
Inheritance, Interfaces, and Abstract Classes David Stark 11/13/2010
Creating Enumerated Types and Structures Shawn Weisfeld 12/11/2010
Events and Event Handling Tuc Goodwin 1/8/2011
Controlling Program Flow David Stark 2/12/2011
Using Stings and Regular Expressions Shawn Weisfeld 3/12/2012
Working with Arrays and Collections Tuc Goodwin 4/9/2011
Handling Errors using Exceptions David Stark 5/14/2011
Understanding Generics Shawn Weisfeld 6/11/2011
Understanding Query Expression Tuc Goodwin 7/9/2011