1. Trang chủ
  2. » Công Nghệ Thông Tin

Tuan04 c net basic p3

22 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập trình Ứng dụng quản lý C#.NET cơ bản
Trường học Unknown
Chuyên ngành C#.NET Programming
Thể loại Bài tập
Năm xuất bản 2018
Thành phố Unknown
Định dạng
Số trang 22
Dung lượng 900,38 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình Windows 9/25/2018 1 C# NET cơ bản Lập trình hướng đối tượng Lập trình Ứng dụng quản lý Nội dung  Class và thừa kế  Interface và Struct  Phân cấp dữ liệu trong NET  Truyền tham số trong C[.]

Trang 1

C#.NET cơ bảnLập trình hướng đối tượng

Lập trình Ứng dụng quản lý

Nội dung

 Class và thừa kế

 Interface và Struct

 Phân cấp dữ liệu trong NET

 Truyền tham số trong C#

Trang 2

Nội dung

Class và thừa kế

 Interface và Struct

 Phân cấp dữ liệu trong NET

 Truyền tham số trong C#

Trừu tượng hóa dữ liệu

 Trừu tượng hóa dữ liệu là một phương pháp tích

hợp các dữ liệu cơ sở hoặc kiểu dữ liệu có sẵn

nhằm mô tả, biểu diễn một khái niệm hay một đối

tượng trong thế giới thực

Ví dụ biểu diễn dữ liệu thông tin một Sinh viên,

một Nhân viên.

Trang 3

 Cú pháp khai báo trong C#

[accessmodifier] class ClassName

Thành phần instance (thể hiện) và static (tĩnh)

 Tùy theo dữ liệu hay xử lý là chung hay riêng cho mỗi

static datatype fieldStatic ;

datatype methodInstance ( params )

Trang 4

Trong C# chỉ cho phép kế thừa public.

 Trong C# chỉ cho phép đơn thừa kế

 Trong C# một lớp bắt buột phải thừa kế từ một lớp

Trang 5

 C# cho phép cả class và phương thức có thể khai

báo abstract.

Một class abstract không có instance và một

phương thức abstract phải được overriden trong

bất kỳ lớp dẫn xuất không abstract nào

 Một phương thức abstract sẽ tự động được khai

Một class sealed thì không cho phép kế thừa.

Một phương thức sealed thì không cho phép

Trang 6

Constructor staticđể khởi tạo các thành phần

static Constructor statickhông có bổ từ tầm vực

truy xuất, không có bất kỳ một tham số nào và chỉ

có duy nhất một constructor static trong một lớp.

Trang 7

Constructor gọi constructor khác

field2;

public ClassName() {

field1 = default1;

}

public ClassName(info1) : this ()

{ field2 = info1;

} }

Constructor trong kế thừa

Trang 8

 Mọi vùng nhớ cấp phát cho đối tượng trong NET

đều được bộ thu gom rác (garbage collection)

quản lý

 C# hỗ trợ mẫu Destruction để giải quyết vấn đề

cần giải phóng sớm các tài nguyên chiếm nhiều

bộ nhớ hoặc các tài nguyên có vùng nhớ không

được quản lý (unsafe) Gồm 2 giai đoạn

 Thực thi giao diện Dispose giải phóng tài nguyên

~ ClassName ()

{

giải phóng fieldUnsafe }

}

Trang 9

Phân biệt Close và Dispose

class ClassName : IDisposable

System.Object là class cơ sở cao nhất trong cây

thừa kế các kiểu dữ liệu của NET

Nếu class không được khai báo tường minh thừa

kế bất kỳ class nào thì mặc định kế thừa Object.

 Một số phương thức được định nghĩa trong

Object:

Phương thức Đặc tính Chức năng

string ToString() public virtual Trả về một chuỗi mô tả của đối

tượng int GetHashTable() public virtual Được sử dụng trong dictionary

Trang 10

Class Object (tt)

Phương thức Đặc tính Chức năng

bool Equals(object obj) public virtual So sánh các thực thể của đối

tượng bool Equals(object

objA, object objB) public static

So sánh các thực thể của đối tượng

bool

ReferenceEquals(obje

ct objA, object objB)

public static So sánh hai sự tham chiếu đến

một đối tượng

Type GetType() Public Trả về chi tiết kiểu của một đối

tượng object

set {

field = value ; }

}

}

Trang 11

Property (tt)

Bản chất của property là method.

Propertychỉ đọc (readonly) hay chỉ ghi

} set {

arrData [ ] = value ; }

}

Trang 12

Nội dung

Class và thừa kế

Interface và Struct

 Phân cấp dữ liệu trong NET

 Truyền tham số trong C#

Các thành phần trong interface không được

phép khai báo virtual hay static.

Trang 13

} public void func2 ( int t

{

} int ITest2 func1 () {

} }

Struct

 Cú pháp

[accessmodifier] struct structName

{

[accessmodifier] datatype fieldName ;

[accessmodifier] datatype methodName ()

{

}

}

Struct là value type.

Structkhông hỗ trợ kế thừa

Không được phép cài đặt constructor mặc định.

Tầm vực truy suất mặc định là public.

Trang 14

Nội dung

Class và thừa kế

Interface và Struct

Phân cấp dữ liệu trong NET

 Truyền tham số trong C#

Phân cấp kiểu dữ liệu trong NET

Trang 15

Phân cấp kiểu dữ liệu trong NET (tt)

 Bất kỳ kiểu dữ liệu nào cũng được dẫn xuất từ

Object, được định nghĩa tập các phương thức

thông dụng cho tất cả các kiểu (như: ToString(),

Equals(), GetHashCode(), ).

Các kiểu dữ liệu số (numerical) dẫn xuất từ

System.ValueType (tự động cấp phát trên

stack).

 Kiểu dữ liệu số có các giá trị mặc định tương ứng

(như MaxValue, MinValue, )

 Các kiểu dữ liệu số có phương thức hỗ trợ lấy giá

trị (value) từ chuỗi (string) đó là Parse() và

TryParse().

Implicitly Typed Local Variables

Từ C# 3.0 cho phép khai báo biến với kiểu dữ

liệu không tường minh bằng từ khóa var Thực

chất compiler sẽ tự gán kiểu giá trị thích hợp cho

biến

var myInt = 0;

var myBool = true ;

var myString = "Time, marches on " ;

 Giới hạn: chỉ sử dụng cho biến cục bộ trong

method hoặc property Phải gán giá trị khởi tạo

(≠ null) cho biến

Trang 16

Nội dung

Class và thừa kế

Interface và Struct

Phân cấp dữ liệu trong NET

Truyền tham số trong C#

Truyền tham số cho phương thức

Không kèm theo từ khóa bổ trợ Tham số được truyền bằng giá trị

(value), nghĩa là phương thức được gọi nhận một bản sao của dữ liệu gốc

Đi kèm từ khóa out Tham sốphảiđược gán giá trị bởi

phương thức được gọi nhận tham số.

Đi kèm từ khóa ref Tham số có thể được gán lại giá trị

trong phương thức và điều này là không bắt buộc

Đi kèm từ khóa params Cho phép truyền biến thiên về số

lượng tham số với cách khai báo như là 1 tham số

Trang 17

Ví dụ truyền tham số thông thường

static int Add( int x , int y

Console.WriteLine( "Before call: X: {0}, Y: {1}" , x , y );

Console.WriteLine( "Answer is: {0}" , Add( , y ));

Console.WriteLine( "After call: X: {0}, Y: {1}" , x , y );

}

Before call: X: 9, Y: 10

Answer is: 19

After call: X: 9, Y: 10

Ví dụ truyền tham số với out

static void Add ( int x , int y , out int ans )

Add (90, 90, out ans );

Console.WriteLine( "90 + 90 = {0}" , ans );

Trang 18

Ví dụ truyền tham số với ref

static void SwapStrings ( ref string s1 , ref string s2 )

Console.WriteLine( "Before: {0}, {1} " , str1 , str2 );

SwapStrings ( ref str1 , ref str2 );

Console.WriteLine( "After: {0}, {1} " , str1 , str2 );

}

Before: Flip, Flop

After: Flop, Flip

Ví dụ truyền tham số với params

static double CalculateAverage ( params double [] values )

Trang 19

Ví dụ truyền tham số với params (tt)

static void Main( string [] args )

average = CalculateAverage( data );

Console.WriteLine( "Average of data is: {0}" , average );

Console.WriteLine( "Average of data is: {0}" ,

CalculateAverage());

}

You sent me 5 doubles.

Average of data is: 32.864

You sent me 3 doubles.

Average of data is: 4.3

You sent me 0 doubles.

Average of data is: 0

Phân biệt kiểu tham số và kiểu dữ liệu

Trang 20

Phân biệt kiểu tham số và kiểu dữ liệu (tt)

static void Main( string [] args )

{

var s = new STest ();

var c = new CTest ();

Console.WriteLine( "s.X= {0}, c.X= {1}" , s X , c X );

Func1( , c );

Console.WriteLine( "Sau Func1: s.X= {0}, c.X= {1}" , s X , c X );

Func2( ref s , ref c );

Console.WriteLine( "Sau Func2: s.X= {0}, c.X= {1}" , s X , c X );

}

s.X= 0, c.X= 0

Sau Func1: s.X= 0, c.X= 10

Sau Func2: s.X= 10, c.X= 10

Phân biệt kiểu tham số và kiểu dữ liệu (tt)

static void Func3 ( STest s , CTest c

var s = new STest ();

var c = new CTest ();

Console.WriteLine( "s.X= {0}, c.X= {1}" , s X , c X );

Func3( , c );

Console.WriteLine( "Sau Func3: s.X= {0}, c.X= {1}" , s X , c X );

Func4( ref s , ref c );

Console.WriteLine( "Sau Func4: s.X= {0}, c.X= {1}" , s X , c X );

}

Trang 21

Phân biệt kiểu tham số và kiểu dữ liệu (tt)

Chỉ sử dụng được với reference type???

bool b = null ; //compiler error!

int i = null ; //compiler error!

string s = null ; //OK!

Sử dụng Nullable type

bool ? b = null ; //OK!

int ? i = null ; //OK!

string s = null ; //OK!

 Ý nghĩa sử dụng???

Trang 22

 Chương trình nhập vào họ tên, điểm toán, điểm

văn của học sinh Tính điểm trung bình và xuất

kết quả

 Viết chương trình tính tổng lương công ty phải

trả cho Nhân viên biết Nhân viên trong công

ty được lĩnh lương theo các dạng khác nhau:

 Người lao động hưởng lương từ ngân sách Nhà

nước gọi là cán bộ, công chức (dạng biên chế)

 Người lao động lĩnh lương từ ngân sách gọi là

người làm hợp đồng

 Viết chương trình tính diện tích (thể tích), chu vi

(diện tích xung quanh) danh sách các hình: Chữ

nhật, Vuông, Tròn, Lập phương, Hình Hộp, Hình

Cầu

Ngày đăng: 09/04/2023, 06:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN