You are on page 1of 46

Lp trnh Web

Chng 2:

Cn bn v ngn ng C#

Lp trnh Web

Ni dung
Cc kiu d liu cn bn Bin v Hng Ton t Cc cu trc iu khin

Namespace
Bi tp
Lp trnh Web

Kiu d liu
Chia thnh 2 tp kiu d liu chnh:
Kiu d liu xy dng sn (Build-In). Kiu do ngi dng nh ngha (User defined).

Cc bin c phn thnh 2 loi:


Kiu gi tr (Values type). Kiu tham chiu (Reference type).

Lp trnh Web

Cc kiu d liu n gin chun


Kiu C# S byte Kiu .NET byte char bool 1 2 1 Byte Char Boolean M t S nguyn dng khng du t 0-255 K t Unicode Gi tr logic true/ false

sbyte
short ushort int uint long uLong

1
2 2 4 4 8 8

Sbyte
Int16 UInt16 Int32 Uint32 Int64 UInt64

S nguyn c du ( t -128 n 127)


S nguyn c du gi tr t -32768 n 32767. S nguyn khng du 0 65.535 S nguyn c du 2.147.483.647 v

2.147.483.647 S nguyn khng du 0 4.294.967.295


Kiu s nguyn c du. Kiu s nguyn khng du.
Lp trnh Web

Cc kiu d liu n gin chun


Kiu C# S byte Kiu .NET float double 4 8 Single Double M t Kiu du chm ng, gi tr xp x t 3,4E38 n 3,4E+38, vi 7 ch s c ngha.. Kiu du chm ng c chnh xc gp i, gi tr xp x t 1,7E-308 n 1,7E+308, vi 15,16 ch s c ngha. decimal 8 Decimal C chnh xc n 28 con s v gi tr thp phn, c dng trong tnh ton ti chnh, kiu ny i hi phi c hu t m hay M theo sau gi tr. Kiu chui, l kiu tham tr, c lu trong heap Kiu c s ca tt c cc kiu.

string object

String Object

Lp trnh Web

Kiu Gi tr v kiu Tham chiu (1)


C# chia cc kiu d liu thnh 2 loi:
Kiu gi tr (Value type): Lu gi tr trc tip trn Stack Gi tr c truy xut mt cch trc tip. Khi gn s to ra mt copy mi ca bin. Khng cho php tha k. Tha k ngm nh t kiu System.ValueType. Bao gm cc kiu n gin chun, kiu enum v struct.

Lp trnh Web

Kiu Gi tr v kiu Tham chiu (2)


C# chia cc kiu d liu thnh 2 loi:
Kiu tham chiu (Reference type): c cp vng nh trong Heap Lun cha mt tham chiu n mt i tng hoc c gi tr null khi khng tham chiu. Cho php tha k. Khi gn s khng to ra i tng mi m ch gn tham chiu. Bao gm cc kiu: String, Array, Class, Interface, Delegate

Lp trnh Web

Phn b vng nh ca cc kiu bin.

Lp trnh Web

V d kiu Gi tr (1)
struct MyStruct { public int data; public MyStruct(int i){ data=i; } static void Main(string[] args) { MyStruct v1, v2 = new MyStruct(10); v1 = v2; v1.data = 20; Console.WriteLine("v1= {0}\nv2= {1}",v1.data,v2.data); } }
Lp trnh Web

V d kiu Gi tr (2)
static void Main(string[] args) { MyStruct v = new MyStruct(10); Console.WriteLine("Before = {0}", v.data); Change(v); Console.WriteLine("After = {0}", v.data); } static void Change(MyStruct v) { v.data *= 2; }

Lp trnh Web

10

V d kiu tham chiu (1)

class MyClass { public int data; public MyClass(int i){ data=i; } static void Main(string[] args) { MyClass r1, r2 = new MyClass(10); r1 = r2; r1.data = 20; Console.WriteLine(r1= {0}\nr2= {1}", r1.data, r2.data); } }
Lp trnh Web

11

V d kiu tham chiu (2)


class MyClass { public int data; public MyClass(int i){ data=i; } static void Main(string[] args) { MyClass r = new MyClass(10); Console.WriteLine("Before = {0}", r.data); Change(r); Console.WriteLine("After = {0}", r.data); } static void Change(MyClass r) { r.data *= 2; } }

Lp trnh Web

12

Chuyn i kiu d liu


C 2 kiu chuyn i kiu d liu:
Chuyn i ngm nh (Implicit Casting) c thc hin mt cch ngm nh. c thc hin bi trnh bin dch. Lun lun thnh cng v khng gy ra li khi chy. Chuyn i tng mnh (Explicit Casting) c thc hin tng minh trong code. C th mt d liu khi c gn mt kiu c kch thc ln sang kiu c kch thc nh hn. Chuyn kiu c th khng thnh cng v C th sinh ra li khi chy.

Lp trnh Web

13

V d Chuyn kiu
class Base{} class Child : Base{ static void Main() { Base b; Child c = new Child() ; b = c; // OK, chuyn kiu ngm nh t kiu con sang kiu cha int i=20; long l; l = i; // OK, Chuyn kiu ngm nh t kiu in sang kiu long c = b; // ERROR, khong cho phep ep kieu ngam dinh t cha sang con c = (Child)b; //OK, nhng c th b li chy i = l; // ERROR, khong cho ep kieu ngam dinh i = (int)l; // OK, nhng c th b mt d liu. } }
Lp trnh Web

14

Bin v hng
Khai bo v t tn bin

Hng

15

Lp trnh Web

Khai bo bin (1)


Nu khai bo trong 1 hm : l bin Nu khai bo ngoi hm nhng nm trong 1 lp : khng

phi l bin m mang ngha khc.


C php khai bo

<kiu d liu> <tn bin> ;


Thng th nn kt hp khai bo vi khi ng gi tr ban

u cho bin
<kiu d liu> <tn bin>=<gi tr u>;
Lp trnh Web

16

Khai bo bin (2)


//Khng khai bo bin y class <Tn lp> { //Khai bo bin y mang ngha khc static public void Main( ) { //Khai bo bin y } }

Lp trnh Web

17

t tn bin
Ging nh trong C++

C th dng t kho lm tn bin bng cch thm @

u tn bin.
class Program { static void Main(string[] args) { int @int,j,@i; @int = 3; @j = 1; i = 2; Console.WriteLine("@int= {0},j= {1}, i= {2}",@int, j, i); } }
Lp trnh Web

18

Hng
Kiu lit k (Enum) v String cng l cc hng.

C php khai bo hng:


const <type> tn hng = <gi tr hng>

Hng bt buc phi c gn gi tr khi khai bo. V d:


class Program { public const int Cons1 = 10; static void Main(string[] args) { const int Cons2 = 20; Console.WriteLine("Cons1 = {0}, Cons2 = {1}",Program.Cons1, Cons2); } } Lp trnh Web

19

Kiu Enum [1]


Tp hp cc hng s c t tn. Hu dng khi nh ngha mt kiu c mt tp cc gi tr xc

nh. C php khai bo: enum <Tn kiu Enum> [: base type] { <tn element> [= gi tr] [, <tn element> [= gi tr] ]
}
Base type ch c th l: byte, sbyte, short, ushort, int, uint,

long, ulong. Mc nh phn t u ca enum c gi tr 0 nu khng gn gtr.


Lp trnh Web

20

Kiu Enum [1]


V d:
class SampleEnum{ enum WeekDays{Monday,Tuesday, Webnesday,Thursday,Friday, Saturday,Sunday} static void Main(string[] args){ WeekDays day = WeekDays.Monday; Console.WriteLine(day+" = "+(int)day); } }

Lp trnh Web

21

Kiu Enum [2]


V d 2:
class SampleEnum{ enum WeekDays{ Monday=1, Tuesday=2, Webnesday=3, Thursday=4, Friday=5, Saturday=6, Sunday=7 } static void Main(string[] args){ WeekDays day = WeekDays.Monday; Console.WriteLine(day+" = "+(int)day); } }

Lp trnh Web

22

Kiu chui
String l kiu tham chiu, nhiu bin c th cng tham

chiu n cng mt i tng String. Mi thao tc insert, delete trn chui u to ra mt i tng chui mi ch khng thay i trn chui c => i tng string coi nh l hng s. V d
class Program { static void Main(string[] args) { String s1 = "Hello , s2; s2 = s1; s2 = s2 + " world"; Console.WriteLine("s1= {0}\ns2= {1}",s1,s2); } }

Lp trnh Web

23

Ton t (1)
Ton t gn: =

Ton t ton hc:


+,-,*,/ (chia nguyn v khng nguyn), % (ly d),

Ton t tng v gim:


Tnh ton v gn tr li: +=, -=, *=, /=, %= vd: i += 1; Tng gim tin t v hu t: ++, - vd: i++, ++i, i--, --i

Ton t quan h: ==, != , >, >=, <, <=


Ton t logic: &&, ||, !

Lp trnh Web

24

Ton t (2)
Ton t x l bit: &(and), | (or), !(not), << (shift left),

>>(shift right) Ton t 3 ngi: <iu kin > ? <Biu thc th 1> : <Biu thc th 2>
Nu iu kin ng: tr v biu thc 1

Nu iu kin sai: tr v biu thc 2

V d

str = 2>1? Larger: Smaller;

Lp trnh Web

25

Nhp xut trong C#


S dng cc phng thc ca lp Console trong namspace System.

Console.WriteLine()
Console.Write() String Console.ReadLine()

c dng tip theo trong input chun (thng dng nhp mt dng t

bn phm)

int Console.Read ()

c k t tip theo trong input chun (thng dng nhp 1 k t).

Lp trnh Web

26

V d
using System; class SampleCSharp { static void Main(string[] args) { //Nhp vo 1 chui string s = Console.ReadLine(); //Nhp vo s nguyn int n = int.Parse(Console.ReadLine());

//In ra m hnh Console.WriteLine("s = {0} va n = {1}", s, i);


} }
Lp trnh Web

27

Cc cu trc iu khin trong C#


Cu trc r nhnh:
if else

Cu trc tuyn:
Switch case

Cu trc lp:
for do while

foreach

Lp trnh Web

28

Cu trc r nhnh[1]
Cu trc if else :
if (<biu thc>) { //Cc cu lnh nu ng } [ else { //V d 2: //Cc cu lnh nu sai int value=1; } if (value=2 ) ] { Console.WriteLine("Hai"); } else { Console.WriteLine(Khc Hai");
} Biu thc phi tr v gi tr kiu Boolean (hay bool) //V d 1: int value=1; if (value) //Li bin dch: { //V d 2: Console.WriteLine("Hai"); } int value=1; else if (value==2 ) { { Console.WriteLine(Khc Hai"); Console.WriteLine("Hai"); } } else { Console.WriteLine(Khc Hai"); }
Lp trnh Web

29

Cu trc tuyn
C php switch case
//V d int i=2; switch (i) { case 2: Console.Write(2); break; case 3: Console.Write(3); break; default: Console.Write("12"); break; }

switch (bin/biu thc) { case gi tr 1: //Cc cu lnh 1 break; case gi tr 1: //Cc cu lnh 2 break; default: //Cc cu lnh 3 break; }

Lp trnh Web

30

Cu trc lp[1]
C php for
for(khi to, iu kin, bc nhy) { //Cc cu lnh
}

for(int i=0,i<=10,i++) { Console.Write(i); }

Lp trnh Web

31

Cu trc lp[2]
C php while
while(iu kin) { //Cc cu lnh
}

int i=0; while(i<=10) { Console.Write(i); i++; }


Lp trnh Web

32

Cu trc lp[3]
C php do
do {
//Cc cu lnh } while(iu kin)

int i=0; do { Console.Write(i); i++; }while(i<=10)


Lp trnh Web

33

Cu trc lp[4]
C php foreach
forearch(Type Identifier in Expression) { //Cc cu lnh }
using System; class SampleCSharp { static void Main(string[] args) { string[] arr = new string[] { "One", "Two", "Three" }; foreach (String s in arr) { Console.WriteLine(s); } } } Lp trnh Web

34

Namespace
S dng trnh vic t trng tn. Dng t chc v qun l code. C php khai bo:

namespace <Tn namespace> { //Khai bo cc kiu y }


S dng namespace:

using <Tn namespace>


Lp trnh Web

35

V d khai bo namespace
class SamsungTelevision { ... } class SamsungWalkMan { ... } class SonyTelevision { ... } class SonyWalkMan { ... } namespace Samsung { class Television {...} class WalkMan {...} } namespace Sony { class Television {...} class Walkman {...} }

Namespace lng nhau


Khai bo mt namespace lng trong namespace khc
namespace Sony { namespace Television { class T14inches { ... } class T21inches { ... } } }

... namespaceSony.Television { class T14inches { ... } class T21inches { ... } } ...

Truy xut cc kiu bn trong namespace


C php:

<Tn namespace>. <Tn kiu>


V d: namespace Example{ namespace SubNamespace{ struct MyStruct{} } class Program{ static void Main(string[] args){ SubNamespace.MyStruct o1; o1 = new Example.SubNamespace.MyStruct(); Example.SubNamespace.MyStruct o2; o2 = new Example.SubNamespace.MyStruct(); } }}

Lp trnh Web

38

Cu hi n tp
1.
a. b. c. d.

Phng thc ca lp Console dng nhp mt chui


Console.Read() Console.ReadLine() Console.Write() Console.Accept()

2.
a. b. c. d.

Cu lnh no sau y khng b li khi bin dch


int i=2; if (i==1) Console.WriteLine(i); int i=2; if (i=1) Console.WriteLine(i); int i=2; if (i) Console.WriteLine(i); int i=2; if (i=2) Console.WriteLine(i);

Lp trnh Web

39

Cu hi n tp
3.
a.

Kiu Gi tr (Value type) c lu trong


b.
c. d.

Heap Stack Queue List

4.
a.
b. c. d.

Kiu d liu no sau y khng phi l kiu tham chiu


Class String Struct Array

Lp trnh Web

40

Cu hi n tp
6.
a.

Kt qu ca on chng trnh bn l:
b.
c. d.

Li bin dch 10 10 20 20 10 10 10 20 10 10 20 10

using System; class Test{ public int data; public void Print(){ Console.Write(data + " "); } public static void Main() { Test t1 = new Test(); t1.data = 10; Test t2 = t1; t1.Print(); t2.Print(); t1.data = 20; t1.Print(); t2.Print(); } }

Lp trnh Web

41

Cu hi n tp
7.
a.

Kt qu ca on chng trnh bn l:
b.
c. d.

Li bin dch 10 10 20 20 10 10 10 20 10 10 20 10

using System; struct Test{ public int data; public void Print(){ Console.Write(data + " "); } public static void Main() { Test t1 = new Test(); t1.data = 10; Test t2 = t1; t1.Print(); t2.Print(); t1.data = 20; t1.Print(); t2.Print(); } }

Lp trnh Web

42

Cu hi n tp
Cho hai lp c ci t nh sau:
class B { Int32 x; }
class D : B { Int32 y; }

Cu hi n tp
Xt kt qu khi thc hin cc dng lnh sau
Statement
System.Object o1 = new System.Object()

OK X X X X X X X

CTE

RTE

System.Object o2 = new B();


System.Object o3 = new D(); System.Object o4 = o3; B b1 = new B(); B b2 = new D();

D d1 = new D();
B b3 = new System.Object(); D d3 = new System.Object(); B b3 = d1; D d2 = b2; D d4 = (D) d1;

X X

X
X X

Cu hi n tp
Statement
D d5 = (D) b2; D d6 = (D) b1; B b4 = (B) o1; B b5 = (D) b2; B b5 = (D) b1;

OK X

CTE

RTE X X

Bi tp

Lp trnh Web

46

You might also like