Tải bản đầy đủ (.pdf) (22 trang)

Tuan02 c net basic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (927.76 KB, 22 trang )

9/12/2018

Lập trình Ứng dụng quản lý
.NET Framework và ngơn ngữ lập trình
C#

Nội dung
 .NET Framework

 Ngơn ngữ lập trình C#
 Các đặc điểm cơ bản của C#
 String trong .NET
 Array trong C#

1


9/12/2018

Nội dung
 .NET Framework
 Ngơn ngữ lập trình C#
 Các đặc điểm cơ bản của C#
 String trong .NET
 Array trong C#

.NET Framework
 Microsoft .NET gồm 2 phần chính : Framework

và Integrated Development Environment (IDE).
 Framework cung cấp những gì cần thiết và căn



bản.
 IDE thì cung cấp một mơi trường giúp chúng ta triển
khai dễ dàng, và nhanh chóng các ứng dụng dựa
trên nền tảng .NET.
 Microsoft .NET là nền tảng cho việc xây dựng và

thực thi các ứng dụng phân tán thế hệ kế tiếp.
 .NET Framework là một platform (nền tảng) mới
làm đơn giản việc phát triển ứng dụng trong môi
trường phân tán của Internet.

2


9/12/2018

Thành phần
 .NET Framework có hai thành phần chính:

Common Language Runtime (CLR) và thư viện
lớp .NET Framework.
 CLR thực hiện quản lý bộ nhớ, quản lý thực thi tiểu

trình, thực thi mã nguồn, xác nhận mã nguồn an
toàn, biên dịch và các dịch vụ hệ thống khác.
Những đặc tính trên là nền tảng cơ bản cho những
mã nguồn được quản lý chạy trên CLR.
 Thư viện lớp .NET Framework là một tập hợp
những kiểu dữ liệu được dùng lại và được kết hợp

chặt chẽ với Common Language Runtime. Thư
viện lớp là hướng đối tượng cung cấp những kiểu
dữ liệu mà mã nguồn được quản lý của chúng ta có
thể dẫn xuất.

MSIL
 Trong .NET Framework, chương trình khơng

được biên dịch vào các tập tin thực thi mà thay
vào đó chúng được biên dịch vào những tập tin
trung gian gọi là Microsoft Intermediate
Language (MSIL).
 Những tập tin MSIL được tạo ra từ C# cũng tương

tự như các tập tin MSIL được tạo ra từ những ngôn
ngữ khác của .NET, platform ở đây không cần biết
ngôn ngữ của mã nguồn.
 Khi chạy chương trình, thì MSIL được biên dịch

một lần nữa, sử dụng trình biên dịch Just-InTime (JIT). Kết quả là mã máy được thực thi bởi
bộ xử lý của máy.

3


9/12/2018

Nội dung
 .NET Framework
 Ngơn ngữ lập trình C#

 Các đặc điểm cơ bản của C#
 String trong .NET
 Array trong C#

Ngơn ngữ lập trình C#
 C# là một ngơn ngữ lập trình mới được thiết kế

riêng để dùng cho Microsoft .NET Framework.
 Được xây dựng trên nền tảng của hai ngôn ngữ

mạnh nhất là C++ và Java.
 C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn
mười mấy kiểu dữ liệu được xây dựng sẵn. Tuy
nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi
những khái niệm lập trình hiện đại. C# bao gồm tất
cả những hỗ trợ cho cấu trúc, thành phần
component, lập trình hướng đối tượng.
 C# là một ngôn ngữ độc lập.

4


9/12/2018

Intermediate Language
 Intermediate Language là bản chất của .NET

Framework. Mã C# sẽ ln được dịch sang
Intermediate Language trước khi nó được thực
thi.

 Những đặc tính chính của Intermediate Language
 Hướng đối tượng và dùng interfaces.
 Sự tách biệt giữa kiểu giá trị và kiểu tham chiếu.
 Định kiểu mạnh.
 Quản lỗi thông qua các ngoại lệ (exception).
 Sử dụng các thuộc tính (Attributes).

Nội dung
 .NET Framework

 Ngơn ngữ lập trình C#
 Các đặc điểm cơ bản của C#
 String trong .NET
 Array trong C#

5


9/12/2018

Biến và hằng
 Khai báo biến:

[ modifier ] datatype identifer ;
Với modifier là một trong những từ khoá :
public, private, protected, . . . còn datatype là kiểu
dữ liệu (int , long , float. . . ) và identifier là tên
biến.
 Khai báo hằng:


const int a = 100 ;

Data types
 Kiểu dữ liệu trong C#
 C# là ngôn ngữ lập trình định kiểu mạnh.
 Bao gồm 2 loại
 Được xây dựng sẵn: int, long,...
 Tự định nghĩa.
 Chia thành 2 kiểu chủ yếu là: kiểu giá trị (value

type, thông thường là struct như: int, char,…) và
kiểu tham chiếu (reference type, thông thường là
class như: string,…).
 Kiểu giá trị được lưu trong vùng nhớ Stack.

 Kiểu tham chiếu được lưu trong vùng nhớ Heap (giá trị địa

chỉ lưu trong Stack).

6


9/12/2018

Vùng nhớ
 Vùng nhớ Stack và Heap
 Vùng nhớ Stack là vùng lưu trữ dữ liệu với kích

thước cố định, riêng biệt cho mỗi chương trình. Mọi
dữ liệu được lưu trên Stack sẽ bị loại bỏ ngay khi

hoàn thành phạm vi biến (hồn tất 1 phương thức,
chương trình,…).
 Vùng nhớ Heap là vùng lưu trữ dữ liệu có kích
thước thay đổi và khá đồ sộ. Dữ liệu trên Heap
không bị loại bỏ khi biến tham chiếu đến đã hoàn
thành phạm vi biến.

Boxing
 Boxing là quá trình chuyển dữ liệu từ kiểu tham

trị sang kiểu tham chiếu. Q trình có thể thực
hiện ngầm định.

7


9/12/2018

Unboxing
 Unboxing là quá trình

ngược lại với boxing,
tức là đưa từ kiểu
tham chiếu ra kiểu
tham trị. Quá trình
phải được thực hiện
tường minh (phải đảm
bảo đúng với kiểu dữ
liệu đã boxing).


Cấu trúc chương trình
 Trong C# mọi thứ đều bắt đầu từ class.

 Class là một khuôn mẫu thiết yếu để tạo ra đối

tượng.
 Thành phần dữ liệu: fields, constants và events.
 Thành phần xử lý: methods (functions member).

Một phương thức được bổ nghĩa bởi các từ khóa
sau: public, private, protected, internal, static,
abstract, virtual, override, new, sealed,
extern.???
 Struct tương tự class tuy nhiên có nhiều khác biệt

cơ bản???

8


9/12/2018

Phương thức
 Cách khai báo và sử dụng phương thức (truyền

tham số,...)
[static] [access modifiers] <return type>
MethodName( params)
{
content code

}

 Khai báo phải đi liền với thân hàm

Cấu trúc lệnh
 Các cấu trúc lệnh (điều kiện, lặp, switch,...)
 Tương tự C++
 Lặp duyệt

foreach (var item in collection)
{
content code
}
foreach (DataType element in collection)
{
content code
}

9


9/12/2018

Kiểu liệt kê (enumerations)
enum EnumName
{
enum1,
enum2 = 3,
enum3
}


EnumName e = EnumName.enum2;
switch (e)
{
case EnumName.enum1:
break;
case EnumName.enum2:
break;
case EnumName.enum3:
break;
default:
break;
}

Namespaces
 Namespaces cung cấp cách tổ chức quan hệ

giữa các lớp và các kiểu khác.
 Hiểu đơn giản là namespace chia không gian
cho từng thư viện.
 Sử dụng từ khóa using để khai báo sử dụng
mặc định namespace.
using
using
using
using
using

System;
System.Collections.Generic;

System.Linq;
System.Text;
System.Threading.Tasks;

10


9/12/2018

Delegate
 Delegate là kiểu dữ liệu tham chiếu được dùng

để đóng gói một phương thức với tham số và
kiểu trả về xác định.
 Gần giống con trỏ hàm trong C++ nhưng là
hướng đối tượng, an toàn và bảo mật.
 Khai báo delegate trong namespace hoặc trong
class.
 Ví dụ:
public delegate int CompareFunc(object obj1,
object obj2);

Sử dụng delegate
 Sử dụng delegate để xác định phương thức lúc

thực thi.
 Cơ chế multicasting cho phép gọi hai hay nhiều
phương thức thực thi thông qua một ủy quyền
đơn. Mục đích chính là có một ủy quyền có thể
gọi thực hiện nhiều hơn một phương thức. Để

thực hiện được thì kiểu trả về của delegate phải
là kiểu void.
 Ví dụ:
delegate void MulticastDelegate();

var myMulticastDelegate = Writer + Logger;
myMulticastDelegate += Transmitter;

11


9/12/2018

Nội dung
 .NET Framework
 Ngơn ngữ lập trình C#
 Các đặc điểm cơ bản của C#
 String trong .NET
 Array trong C#

String trong .NET
 Xử lý chuỗi là công việc cơ bản ln diễn ra trong

lập trình.
 Xử lý chuỗi trong .NET được hỗ trợ rất mạnh bởi
các thư viện liên quan
 Kiểu dữ liệu string với nhiều phương thức hỗ trợ
 StringBuilder giúp xử lý hiệu quả hơn với nhiều

chuỗi trong nhiều tình huống

 Regular Expression giúp xử lý chuỗi quy tắc (so
khớp)

12


9/12/2018

Kiểu dữ liệu string
 Trong các kiểu dữ liệu tích hợp sẵn của C# thì chỉ

string là kiểu dữ liệu tham chiếu (reference type),
tuy nhiên cách sử dụng lại giống như kiểu dữ liệu
tham trị (value type).
 Kiểu dữ liệu string là bất biến (immutable)
(không thể thay đổi sau khi đã được tạo).???
 Kiểu dữ liệu string là sealed (không cho phép
dẫn xuất).
 Vì vậy string trở nên an tồn và hiệu quả hơn.

Định dạng chuỗi (Formatting Strings)
 Phương thức Format giúp định dạng chuỗi kết

quả dễ dàng.
string str = string.Format("{0}+{1}={2}", a,
b, a + b);
...
string strResult = string.Format("Currency:
{0:C}, Hex: ‘{0,2:X}’", 10);
...

strResult = string.Format("Conditional
Currency: {0:$#,###.00;($#,###.00);$0.00}", 123456);

13


9/12/2018

Bảng định dạng tiêu chuẩn

Bảng ký tự tự định dạng

14


9/12/2018

So sánh chuỗi
 Comparing Strings
 Cơ bản sử dụng các operator ==, >, <,...
 Phương thức hỗ trợ so sánh: Compare và

CompareOrdinal.
int rs = string.Compare("abc", "qwe");
rs = string.CompareOrdinal("abc", "qwe");

 Checking for String Equality
 Sử dụng operator ==
 Sử dụng phương thức Equals.
bool bRs = string.Equals(str, str2);

bRs = str.Equals(str2);

Xử lý chuỗi
 Concatenating Strings
 Sử dụng operator +
 Sử dụng phương thức Concat
strResult = str + ", " + str2;
strResult = string.Concat(str, ", ", str2);

 Copying Strings
 Sử dụng phương thức Copy, CopyTo hoặc

phương thức chung Clone.
 Copy khác với phép gán.
strResult = string.Copy(str);
//"qwer\0“
char[] arrC = new char[str.Length];
str.CopyTo(1, arrC, 0, 3);
//'w', 'e', 'r', '\0‘
strResult = new string(arrC);
//"wer\0"

15


9/12/2018

Kiểm tra chuỗi
 Inspecting String Content
 Sử dụng các phương thức StartsWith và


EndsWith hoặc Contains
bRs = str.StartsWith("a");
bRs = str.EndsWith("g");
bRs = str.Contains("op");

 Extracting String Information
 Sử dụng các phương thức IndexOf hoặc

LastIndexOf và Substrings.
int idx = str.IndexOf("test");
idx = str.LastIndexOf("test");
strResult = str.Substring(idx);

Padding và Trimming
 Padding and Trimming String Output
 Sử dụng các phương thức PadLeft, PadRight
 Sử dụng phương thức Trim, TrimStart, TrimEnd
strResult = str.PadLeft(10, '$');
strResult = strResult.TrimStart(new char[] { '$'
});
strResult = str.PadRight(15, '@');
strResult = strResult.TrimEnd(new char[] { '$',
'@' });

16


9/12/2018


Sửa đổi chuỗi
 Modifying String Content
 Các phương thức hỗ trợ: Insert, Remove và

Replace
 Ngồi ra cịn có các phương thức đặc biệt như:
ToLower, ToUpper
strResult
strResult
strResult
strResult

=
=
=
=

str.Insert(1, "zxc");
strResult.ToUpper();
str.Replace("we", "zxc");
strResult.Remove(3);

//"qzxcwer“
//"QZXCWER“
//"qzxcr“
//"qzx“

Chia tách và nối chuỗi
 Splitting and Joining Strings
 Sử dụng phương thức Split và Join

str = "qw ert y";
str2 = "zxc";
string[] arrStr = str.Split(new char[] { ' ' });
//"qw", "ert", "y"
strResult = string.Join(", ", str2, str);
//"zxc, qw ert y“

 Working with String Characters
 Xử lý như mảng các char với các property

Length, toán tử indexer.
 Phương thức hỗ trợ ToCharArray.

17


9/12/2018

Class StringBuilder
 Hỗ trợ tạo chuỗi hiệu quả hơn khi phải xử lý từ

nhiều chuỗi con.
 Mấu chốt của StringBuilder là không tạo các
bản copy của chuỗi ở mỗi thao tác.
 Các phương thức chủ yếu
 Append để nối chuỗi.
 AppendFormat để nối chuỗi có hỗ trợ định dạng

trước.
 EnsureCapacity để xác định kích thước nhỏ nhất

của StringBuilder.
 ToString để trích rút string trong StringBuilder.

Regular Expression
 Chuỗi biểu thức quy tắc được ứng dụng nhiều

trong việc kiểm tra định dạng chuỗi có phù hợp
u cầu hay khơng.
 C#.NET hỗ trợ làm việc với Regular Expression
thông qua class Regex.
string searchString = "1234C";
string regExString = @"\d\d\d\d\d";
Regex rex = new Regex(regExString);
bool isMatch = rex.IsMatch(searchString);

18


9/12/2018

Nội dung
 .NET Framework
 Ngơn ngữ lập trình C#
 Các đặc điểm cơ bản của C#
 String trong .NET
 Array trong C#

Arrays trong C#
 Mảng là thành phần thông dụng trong phần lớn


các ngơn ngữ lập trình.
 Một mảng là một kiểu dữ liệu lưu trữ danh sách
(list) các object.
int[] arrInt = new int[10];
arrInt = new int[] { 1, 4, 6, 78 };
char[] arrChar = str.ToArray();

19


9/12/2018

Single-Dimension Arrays
 Khai báo mảng

Type[] Array-Identifier [initializer] ;
 Duyệt mảng
 Sử dụng vịng lặp thơng thường
for (int i = 0; i < arrChar.Length; i++)
{
//...
}

 Sử dụng vòng lặp foreach
foreach (var c in arrChar)
{
//...
}

Multidimension Arrays

 Khai báo mảng

Type[,,...] Array-Identifier [initializer,...] ;
 Điểm khác biệt là có nhiều chiều hơn nhưng mỗi

chiều là đồng nhất về số lượng.
int[,] maInt = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 7 } };
for (int i = 0; i < maInt.Length; i++)
{
//...
}

20



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×