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

TỔNG HỢP LÝ THUYẾT C# pdf

37 1,6K 32

Đ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

Định dạng
Số trang 37
Dung lượng 258 KB

Nội dung

Nó cung cấp các phương thức để thực hiện các chức năng khác nhau như tạo mảng, tìm kiếm, copy và sắp xếp mảng Các thuộc tính của lớp Array: • Length: số phần tử của mảng kiểu int32 • Lon

Trang 1

Các đặc trưng chính của C# Basic Features of C#

• Được phát triển bởi MS đạt chuẩn ECMA(European Computer

Manufacturers Association)

• Là n.ngữ HĐT,hướng sự kiện, trực quan

• Dựa theo ý tưởng của các ngôn ngữ C, C++, Java, VB

• Hỗ trợ đầy đủ bởi net framework

• Là ngôn ngữ đơn giản(hạn chế con trỏ, không có cslớp ảo, đa thừa kế), hiệu quả, module hóa, mạnh và sẽ là ngôn ngữ phổ dụng

Viết và chạy một ứng dụng đầu tiên trên console

1 Tạo 1 project mới

Nếu dùng IDE thì ấn F6 để dịch chương trình

3 Chạy chương trình run program

Nếu dùng command line thì gõ tên tệp chạy exe

Nếu dùng IDE, ấn Ctrl + F5

Trang 2

Một số khái niệm cơ bản trong C#

1 Kiểu dữ liệu Data Types

Kiểu dữ liệu của C# đc chia thành 2 loại:

a Giá trị Value :

i Có thể là kiểu chuẩn hoặc kiểu dữ liệu do người dùng định nghĩa

ii Kiểu giá trị chứa trong stack cho kết quả nhanh hơn

b Kiểu tham chiếu Reference types:

i Biến tham chiếu được lưu trữ trong heap

ii Tất cả cách kiểu dữ liệu người dùng tự định nghĩa chẳng hạn nhưkiểu lớp thì đều là kiểu tham chiếu

Kiểu dữ liệu chuẩn:

 Mỗi một kiểu dữ liệu thì đều liên quan đến tập giá trị mà nó chứa và các phép toán trên kiểu đó

 Cần lựa chọn kiểu để lưu trữ cho phù hợp với mục đích sử dụng

Kiểu tham chiếu:

Trang 3

2 Từ khóa

3 Nhập xuất

Xuất : Console.Write() và Console.WriteLine()

2 phương thức này có thể chứa tham số là các ký tự định dạng dữ liệu hiển thị

a Console.Write(“Customer name: {0}”, custName);

b Console.WriteLine(“Total amount: ${0:#,###.#0}”, totalAmount);

Nhập: Console.Read() and Console.ReadLine()

custName = Console.ReadLine();

4 Chuyển đổi dữ liệu

Phương thức ReadLine() có thể được sử dụng để nhập các giá trị trừ giá trị nguyên

Dữ liệu nhập là chuôi và được chuyển đổi thành kiểu dữ liệu khác bởi lớp Convert

Trang 4

Ví dụ:

-DateTime today = DateTime.Now;

-Console.WriteLine("short date: {0:d} ", today);

-Console.WriteLine("long date: {0:D} ",today);

-Console.WriteLine("full date with time: {0:f} ",today);

-Console.WriteLine("fulll date with time with second: {0:F} ",today);

Lệnh Checked and Unchecked

Kiểm tra một biểu thức toán học có bị tràn hay không

6 Chuyển đổi kiểu

Kiểu chứa giá trị lớn hơn có thể gán cho kiểu chứa giá trị nhỏ hơn Ngược lại có thể dùng lệnh ép kiểu

Có thể dùng lớp Convert: tostring, toint32,

a (kiểu) biến;

Trang 5

Ví dụ:

int i = 56;

float f = 3.14159f;

f = i; //ep kieu ngam dinh (khong tuong minh) implicit

i = (int)f;//se bi loi neu ban viet int(f) ep kieu tuong minh

7 Boxing và Unboxing

- Sử dụng Boxing và Unboxing để chuyển đổi bất cứ 1 kiểu giá trị nào sang kiểu tham chiếu hay kiểu tương đương

- Khi 1 giá trị được boxing thì giá trị đó sẽ được copy sang 1 một đối tượng

- Đối tượng mới được lưu trữ trong heap

Lớp Array là lớp cơ sở của C# danh cho tất cả các loại mảng

Nó cung cấp các phương thức để thực hiện các chức năng khác nhau như tạo mảng, tìm kiếm, copy và sắp xếp mảng

Các thuộc tính của lớp Array:

• Length: số phần tử của mảng kiểu int32

• LongLength:int64

• Rank: là một số nguyên chứa số chiều trong mảng

• IsReadOnly, IsFixedSize

Trang 6

Các phương thức của lớp Array:

• Clear: xóa các phần tử của mảng, đặt kích thước của mảng là 0.

• GetLength, Initialize, SetValue, GetValue, Sort, Copyto,…

Nhap, Xuat, ToiGian,Cong, Tru,…

10 Đối tượng

Là một thể hiện của lớp

½ là một thể hiện của lớp phân số

1 đối tượng có

- Thuộc tính: Đặc điểm mô tả đối tượng

- Phương thức: Mô tả một hành động khi được yêu cầu sẽ tiến hành như thế nào

Trang 7

11 Lớp và đối tượng

- Lớp để định nghĩa một thực thể, còn đối tượng là một thể hiện của thực thể

- Lớp là 1 khái niệm mà chỉ ra tất cả các đặc điểm và hành động của một đốitượng, còn đối tượng là một cái có thật

- Tất cả đối tượng thuộc về 1 lớp có cùng đặc điểm và hành động

- Lớp kiểu dữ liệu mà 1 đối tượng nào đó thuộc vào

12 Các chức năng chính của OOP(lập trình hướng đối tượng)

Tính trừu tượng (abstraction): Đây là khả năng của chương trình bỏ qua

hay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp làm việc lên, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết Mỗi đối tượng phục vụ như là một "động tử" có thể hoàn tất các công việc một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối tượng khác mà không cần cho biết làm cách nào đối tượng tiến hành được

các thao tác Tính chất này thường được gọi là sự trừu tượng của dữ liệu.

Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể có một

số đặc điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó nhưng bản thân đối tượng ban đầu này có thể không có các biện pháp thi

hành Tính trừu tượng này thường được xác định trong khái niệm gọi là lớp

trừu tượng hay lớp cơ sở trừu tượng.

Tính đóng gói (encapsulation) và che giấu thông tin (information hiding):

Tính chất này không cho phép người sử dụng các đối tượng thay đổi trạng thái nội tại của một đối tượng Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi trạng thái của nó Việc cho phép môi trường bên ngoài tácđộng lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã Đây là tính chất đảm bảo sự toàn vẹn của đối tượng

Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông điệp

(message) Việc gửi các thông điệp này có thể so sánh như việc gọi các hàm

bên trong của một đối tượng Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phản ứng khác nhau Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thông qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ

Trang 8

tự động xảy ra tương ứng theo đặc tính của từng đối tượng mà không bị nhầm lẫn.

Thí dụ khi định nghĩa hai đối tượng "hinh_vuong" và "hinh_tron" thì có một phương thức chung là "chu_vi" Khi gọi phương thức này thì nếu đối tượng

là "hinh_vuong" nó sẽ tính theo công thức khác với khi đối tượng là

"hinh_tron"

Tính kế thừa (inheritance): Đặc tính này cho phép một đối tượng có thể có

sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào cũng có tính chất này

- Là một loại phương thức đặc biệt của lớp

- Được gọi mỗi khi 1 đối tượng mới được tạo ra

- Nó đc dùng để khởi tạo đối tượng

Trang 9

- Trong phương thức tĩnh ta không được phép truy cập trực tiếp đến các thành viên k tĩnh.

15 Hàm tạo tĩnh

- Nó được dùng để khởi tạo cho các biến của lớp, nó được thực hiện duy nhất 1 lần và thực hiện trước nhất ngay khi chạy chương trình.

- Hàm tạo tĩnh là hàm tạo không có tham số.

- Dùng nó khi mà 1 số công việc chỉ thực hiện duy nhất 1 lần và không thể làm trong hàm tạo.

Trang 10

Lớp dẫn xuất được thừa kế những gì?

• All trừ thành phần tĩnh, hàm tạo, hàm hủy, phương thức toán tử gán

• Ở lớp dx được gọi hàm tạo của lớp cơ sở để khởi gán các thuộc tính của lớp

Trang 11

Khi khai báo 1 lơp A là sealed thì khai báo

Class B:A là bị lỗi

Từ khóa virtual

• virtual để định nghĩa một phương thức hỗ trợ cho tương ứng bội

• Nó được dùng để định nghĩa lại một phương thức trong lớp

• Virtual không dùng với static và đi luôn đi kèm với override

• Khai báo phương thức ảo

[access modifier] virtual [return-type] name( [parameters-list] )

{

//virtual method implementation

}

Ví dụ:

Trang 14

public Time(int hours, int minutes)

{

this.hours = hours;

this.minutes = minutes;

} public new Time operator + ( Time second){

return new Time(hours + second.hours, minutes + second.minutes);

} }

17 Lớp cơ sở trừu tượng

- Là lớp mà các lớp khác có thể được dẫn xuất từ chúng

- Lớp cơ sở trừu tượng không được vó thể hiện

- C# cho phép tạo lớp cơ sở trừu tượgn bằng cách thêm từ khóa abstract vào định nghĩa lớp

- 1 phương thức trừu tượng đc dn trong lớp cơ sở trừu tượng và việc thực thi

public abstract void MethodA();

public void MethodB()

{

Trang 15

Console.WriteLine ("This is the non abstract method”); }

- 1 interface là một lớp cơ sở hoàn toàn trừu tượng

- Nó chỉ chứa các phương thức ảo, không có phương thức thực thi

- Một thể hiện của một giao diện phải thực thi các thành phần được liệt kê trong interface

Trang 16

Xung đột trong giao diện( interface)

• Xảy ra khi 2 interface đặt cùng tên 1 phương thức nào đấy

public interface IFile

Trang 17

//(apart from that of IFile & IFileTwo)

}

19 Sự khác nhau giữa lớp trừu tượng và giao diện

- Một lớp trừu tượng thì không có thể hiện nghĩa là ta không thể khởi tạo

nó bằng toán tử new, và một phương thức trong nó là abstract thì chỉ được đưa ra định nghĩa (khai báo) mà không được thực thi và nó sẽ được

overriden lại trong các lớp con kế thừa Và trong lớp mà tồn tại phương

thức abstract thì lớp đó cũng được định nghĩa abstract.

- Đối với giao diện thì khác hoàn toàn với lớp trừu tượng, nó định nghĩa

một cách cứng nhắc các phương thức và thuộc tính trong chúng nghĩa là không cho phép ta thực thi bất kỳ một đoạn mã nào Và tất cả các thành viên trong nó đều được định nghĩa công khai (public) Một cách tổng quan

về giao diện: Giao diện là ràng buộc, giao ước đảm bảo cho các lớp hay các cấu trúc sẽ thực hiện một điều gì đó Khi một lớp thực thi một giao diện, thì lớp này báo cho các thành phần client biết rằng lớp này có hỗ trợ các phương thức, thuộc tính, sự kiện và các chỉ mục khai báo trong giao diện

- Một class chỉ có thể kế thừa từ một abstract class, nhưng có thể kế thừa nhiều interface

- Trong Interface chỉ có thể khai báo các fields, methods, mà không được hiện thực nó Còn đối với abstract thì dùng các biến, hiện thực cách

- Abstract class có tốc độ thực thi nhanh hơn interface

- Thêm 1 tính năng mới vào interface sẽ phá vỡ toàn bộ các lớp hiện thực, còn abstract thì không

Trang 18

• Get được dùng để đọc giá trị

• Set được dùng để thiết đặt giá trị

Property chỉ đọc:

Property chỉ ghi:

Trang 19

Property đọc và ghi:

Tác dụng của Property

• Thay đổi private field

• Đọc private field

• Thực hiện việc đóng gói dữ liệu

• Thực thi việc trừu tượng hóa

21 So sánh Properties và Fields

- Là dữ liệu thành phần mà nó có thể

thiết đặt hoặc truy xuất dữ liệu

- Không dùng với ref và out vì không

- Có thể dùng với ref và out

- Đoạn mã sau tạo ra một trường có tên là

calcAmount

- Private int calcAmount;

Trang 20

Property Method

Thể hiện đặc trưng của đối tượng

Không có tham sô

Có thể overridden nhưng không thể

- Giúp cho việc truy xuất dữ liệu của đối tượng được nhanh hơn

Cú pháp khai báo index:

24 Parameters

- Indexers phải có ít nhất một parameter

- The parameter chỉ thứ tự Vị trí, việc sử dụng vị trí của index mà dữ liệu được lưu trữ là vị trí mà ta thiết đặt hay truy xuất giá trị

- Index có thể có nhiều tham số như mảng nhiều chiều

25 Lập trình cơ sở dữ liệu:

25.1: Đặc điểm của ADO.NET

Trang 21

 Thiết kế hoàn toàn dựa vào XML.

 Thiết kế hoàn toàn hướng đối tượng

 Dữ liệu được đưa vào bộ nhớ dưới dạng DataSet (tương đương với 1

DataBase)

 Duyệt dữ liệu 1 cách tự do, ngẫu nhiên truy cập thẳng vào bảng, dòng, cột mong muốn

 Trao đổi dữ liệu qua internet rất dễ dàng

 Tương tác với hầu hết các loại CSDL: MS SQL server, MySQL, Access, Excel, …

 Hỗ trợ mô hình kết nối không thường xuyên (Ngắt kết nối - disconnected)

 Một tập con của dữ liệu trung tâm được sao chép và bổ sung độc lập (sử dụng DataSet), sau đó sẽ được cập nhật lại vào dữ liệu trung tâm

25.2 Kiến trúc của ADO.NET

Kiến trúc của ADO.NET gồm 2 phần chính:

Phần kết nối: bao gồm các NET Framework data Providers sử dụng khi kết

nối CSDL và thao tác dữ liệu, phải thực hiện kết nối khi thao tác

 Connection: quản lý việc đóng mở DB

 ???Connection: SqlConnection, OleDbConnection

 Command: lệnh truy vấn, tương tác dữ liệu khi đang lập kết nối

 ???Command: SqlCommand, OleDbCommand

 DataReader: bộ đọc dùng để đọc nhanh dữ liệu theo 1 chiều

 ???DataReader: SqlDataReader, OleDbDataReader

 DataAdapter: cầu nối giữa DB và DataSet

Phần ngắt kết nối: là DataSet

 DataSet không quan tâm đến DB thuộc kiểu gì, và lấy dữ liệu từ DataAdapter để xử lý

 DataSet xem như một DB trong bộ nhớ: bảng, quan hệ…

 DataSet có các thành phần con như

Trang 22

 System.Data.OleDb à Access, SQL Server, Oracle

 System.Data.SqlClient à SQL Server

 System.Data.OracleClient à Oracle

 Đặc điểm:

 Cả ba thư viện trên về giao tiếp lập trình là giống nhau

 Dùng thư viện SqlClient truy xuất SQL Server nhanh hơn OleDb

Tương tự cho OracleClient

25.4 Thao tác với CSDL SQL server

 Để thao tác với CSDL SQL server ta dùng sql Data provider

 Khi làm việc với CSDL SQL server ta chú ý 2 trường hợp:

 Câu lệnh SQL là câu Select

 Câu lệnh SQL là các câu như Update, Delete, insert

A, Câu lệnh SQL là câu Select

Ta xét Ví dụ: Tạo 1 form giao diện chỉ có 1 DataGridView để hiển thị dữ liệu của bảng tblChatLieu trong CSDL vừa tạo

Trang 23

 B ước 1 : Tham chiếu đến Namespace System.Data (Thông thường với ứng dụng windown Form thì Namespace này mặc định đã có) Nếu chưa có ta làm như sau:

 Kích chuột phải vào tên dự án, rồi chọn Add Reference cửa sổ sau xuất hiện hình sau: (Chọn như hình vẽ rồi nhấn OK)

Sau khi thêm một quy chiếu vào assembly, ta thêm vào các Namespace sau:

 using System.Data;

 using System.Data.SqlClient;

 Bước 2 : Khai báo chuỗi kết nối

 string conectString = " Data Source= serverName; Initial

Catalog=dataBaseName; User ID=UserName;Password=password;";

 Chú ý: Nếu ta dùng quyền đăng nhập vào CSDL là quyền đăng nhập vào windows thì ta không cần 2 thuộc tính chỉ user ID và Password

Ta thêm thuộc tính Integrated Security=True;

 Bước 3 : Khai báo câu lệnh SQL

 string sqlString=“select * from tableName”;

 Bước 4 : Thiết lập 1 connection (SqlConnection)

 SqlConnection objConnect = new SqlConnection(conectString);

 Bước 5 : Cho mở kết nối

if (objConnect.State != ConnectionState.Open)

objConnect.Open();

 Bước 6 : Tạo đối tượng DataAdapter

SqlDataAdapter dad = new SqlDataAdapter(sqlString,objConnect);

 Bước 7 : Tạo đối tượng DataSet để điền dữ liệu

Trang 24

DataSet dts = new DataSet();

B, Câu lệnh SQL là các câu như Update, Delete, insert

 Bước 1, 2, 3, 4, 5: Làm tương tự như trên

 Bước 6: Ta dùng đối tượng SqlCommand như sau

SqlCommand objCommand = new SqlCommand();

25.5 viết mã lệnh cho form chính

 Form chính có các nhiệm vụ sau:

Trang 25

 Tạo biểu tượng Icon cho form (Chuẩn bị một file ảnh muốn làm biểu

tượng ví dụ Book.ico lưu vào thư mục /BanHang/Images)

 Mở các form tương ứng với các mục menu

 Tạo biểu tượng Ta viết code cho sự kiện Load như sau:

private void frmMain_Load(object sender, EventArgs e)

 Mở các form tương ứng với các mục menu

Giả sử khi ta chọn menu mnuChatLieu (Chất liệu) thì mở ra form tương ứng

là form chất liệu (frmChatLieu) ta viết code cho sự kiện click của

mnuChatLieu như sau:

private void mnuChatLieu_Click(object sender, EventArgs e)

 Phương thức Show() # ShowDialog()

 frmChatLieu nằm trong thư mục /BanHang/Forms/

Ngày đăng: 19/06/2014, 09:20

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w