You are on page 1of 16

C# and .

NET Framework
Bi 2: Hng i tng trong

C#
on Quang Minh
minhdqtt@gmail.com
http://www.VTPortal.net
Last update: 30. December 2006

H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Mc lc
K tha, hm o
Qu ti hm
Hm to, hm hy
Cu trc
Qu ti ton t
Ch s
Giao tip
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Lp v k tha (class & inherit)


nh ngha mt lp: t kha class
K tha n gin: c php.

Khng h tr a k tha
Khng h tr phm k tha (gim phc tp)
Bt buc phi k tha: lp System.Object

Qu ti hm: c php
Khng h tr tham s mc nh
Hm o: t kha virtual v override

Hm b che
L do ra i: cng tn hm nhng khc ngha
T kha new
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Lp v k tha (class & inherit)


Hm tru tng, lp tru tng
T kha abstract
Khc bit vi C++

Lp c ng kn
Khi nim
T kha sealed

Phm vi truy cp
public, protected, private
internal, protected internal

Lp cc b
L lp m m lnh ca n c t nhiu ni.
T kha partial
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Thuc tnh (property)


Thuc tnh
L mt phng thc hoc mt cp phng thc, m
th hin ca n nh l mt trng d liu
Cp t kha get / set
Thuc tnh ch c, ch ghi
Phm vi truy cp: thuc tnh get v set lun c cng
phm vi truy cp.
Thuc tnh tru tng: ch khai bo t kho m
khng c thn hm, do lp k tha bt buc phi
ghi
Thuc tnh o: cho php lp k tha ghi .
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Lp Object
L lp c bn ca .NET, mc nh mi lp nu
khng ni g th hiu l k tha t Object
Cc phng thc ca Object

public virutal string ToString()


public virutal int GetHashTable()
public virutal bool Equals(object obj)
public static bool Equals(object objA, object objB)
public static bool ReferenceEquals(object objA, object
objB)
public Type GetType()
protected object MemberwiseClone()
protected virtual void Finalize()
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Giao tip (interface)


interface:
Mt interface nh ngha nh mt hp ng, do ,
nu mt class hoc mt struct ci t mt interface th
phi ci t tt c cc tnh nng c khai bo trong
interface .
C th hiu interface nh l mt lp tru tng hon
ton (tt c cc phng thc u tru tng). Khi
mt class ci t mt interface, th coi nh n c
k tha t lp tru tng k trn

Khai bo:
[attributes] [modifiers] interface identifier [:base-list]
{interface-body}[;]
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Giao tip (interface)


c tnh:
Mt interface c th l thnh vin ca mt namespace hoc mt class.
Interface c th cha cc thnh vin sau:
Methods
Properties
Indexers
Events

Mt interface c th k tha t mt hay nhiu interface khc

Tnh hung thc t:


Gi thit chng ta cn cung cp chc nng Tm kim cho hai loi i
tng l vn bn v hnh nh. R rng hai loi i tng ny khc
nhau, nn khng th c chung phng thc Tm kim.
S n gin hn nu c hai i tng ny u k tha interface
ISearch: chng ta c th p kiu i tng v interface, vic gi hm
Search() s khng ph thuc vo i tng ban u.

H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Giao tip (interface)


interface IPoint
{
int x { get; set; }
int y { get; set; }
}
class MyPoint : IPoint
{
private int myX;
private int myY;
public MyPoint(int x, int y) { myX = x; myY = y; }
public int x { get { return myX; } set { myX = value; } }
public int y { get { return myY; } set { myY = value; } }
}
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

Hm to v hm hy
(Construction and Disposal)
Hm to (Construction)
nh ngha v c php: nh C++
Khc bit vi C++: khng nn khi to bin thnh vin trong
hm to.
Ch vi hm to c tham s: hy lun lun c hm to mc
nh trnh li bin dch.

Hm to tnh
L hm to, ng thi l hm tnh.
c gi khi s dng phng thc tnh ca i tng.

Gi hm to khi k tha
Thng qua t kho base.
C th truyn tham s cho lp base.
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

10

Hm to v hm hy
(Construction and Disposal)
Hm hy (Disposal)
Khng quan trng nh C++, do b nh t
ng c qun l bi b thu gom rc.
Nu c nh ngha, hm hy s c gi bi
b thu gom rc, nhng khng xc nh c
thi im gi.
C th s dng giao tip IDisposable.
Hay dng khi gii phng cc ti nguyn khc
b nh (kt ni CSDL, tp tin,)
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

11

Cu trc (Structs)
Cu trc (struct)
Ch cha cc bin, khng cha phng thc
Khai bo v s dng cu trc: c th dng hoc
khng dng ton t new

struct v k tha
struct khng th k tha c.
Ngoi l: mt struct coi nh c k tha t lp
Object

Khi to struct
Khng th khi to cc bin thnh vin khi khai bo
C th c hm to
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

12

Qu ti ton t
(Operator Overloading)
nh ngha: nh C++
C php
V d

H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

13

Ch mc
(Indexers)
M t:
Ton t [ ] trong C# khng th qu ti c.
Ch mc l cch lm ging nh vic qu ti ton t [ ]
trong C++, gip cho vic truy cp vo mt class hoc
mt struct ging nh truy cp vo mt array.
Ging nh thuc tnh, ch mc cng gm cp phng
thc get v set.

type this [formal-index-parameter-list]


type: kiu tr v
formal-index-parameter-list: danh sch cc ch mc
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

14

Ch mc
(Indexers)
V d:
Gi s c lp Matrix (ma trn).
Khi dng 2 ch s truy cp, v d, a[i][j] s nhn c
mt thnh phn s. Nu dng 1 ch s truy cp, v d,
a[i] s nhn c mt vector

struct Matrix
{
public double[][] x;
public double this [uint i, uint j];
public Vector this [uint i];
}
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

15

Ti liu tham kho


Professional C#, Second Edition
http://www.asp.net
http://www.microsoft.com/net/default.mspx
http://www.codeproject.com
a ch download ti liu
http://www.thanglong.edu.vn/giang-day/tab.aspx
Din n C# & .NET
http://www.thanglong.edu.vn/forum/cmd/0/categ
ory/hoc-tap-nghien-cuu/dot-net/tab.aspx
H
Hng
i t
tng trong C# - Editor:
Editor:
o
on Quang Minh

16

You might also like