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

Bài giảng Lập trình trên Windows: Chương 2 - Trần Minh Thái (Phần 1) - Trường Đại Học Quốc Tế Hồng Bàng

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 (1.23 MB, 20 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Lập trình Windows</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Nội dung



Tổng quan C#



Các thành phần cơ bản của ngơn



ngữ



Hệ thống kiểu trong .NET


Namespace



Các câu lệnh


Lớp



Thừa kế



Property, Mảng và Indexer



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3></div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Tổng quan C#



C# (C-Sharp) là ngơn ngữ lập trình do Microsoft sáng tạo ra



dựa trên những

ưu điểm của

<i>C++</i>

, Java, Smalltalk

bổ


sung thêm những phần mới



Các phiên bản ngơn ngữ C#



C# 1.0 cho .NET Framework 1.0 (1.1)


C# 2.0 cho .NET Framework 2.0 (3.0)



C# 3.0 cho .NET Framework 3.5



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Tổng quan C#



Mục tiêu thiết kế C#



<sub>Ngơn ngữ hướng thành phần (Component-orientation)</sub>


<sub>Mọi thứ đều là đối tượng</sub>



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Ngơn ngữ hướng thành phần



Ngơn ngữ hướng thành phần đầu tiên trong họ C/C++



<sub>Khái niệm hướng thành phần</sub>



• Properties, methods, events


• Design-time và run-time attributes
• Tích hợp documentation bằng XML


Cho phép one-stop programming



• Không header files, IDL, …


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Mọi thứ đều là đối tượng



Quan điểm truyền thống



<sub>C++, Java™: Các kiểu cơ sở (Primitive type) không thể tương tác với </sub>




các object



Smalltalk, Lisp: Các kiểu cơ sở là các object, nhưng phải trả giá về chi



phí thực thi



C# thống nhất 2 loại kiểu nhưng không phải trả giá về chi phí


thực thi



Tăng cường các kiểu dữ liệu khác



Các kiểu cơ sở mới : Decimal, SQL…



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Tạo ra phần mềm mạnh và bền



<b>Garbage collection (GC)</b>



<sub>Khơng bị rị rỉ bộ nhớ và các con trỏ không được truy cập bất hợp lệ</sub>



<b>Ngoại lệ (Exception)</b>



<sub>Cho phép xử lý các ngoại lệ</sub>



<b>An tồn kiểu (Type-safety)</b>



<sub>Khơng được dùng các biến chưa khởi tạo, ép kiểu (cast) không an </sub>



</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Chương trình C# đầu tiên



<b>using </b>

<b>System;</b>




<b>class</b>

<b>Program</b>



<b>{</b>



<b>static</b>

<b>void</b>

<b>Main</b>

<b>(</b>

<b>string</b>

<b>[] args)</b>


<b>{</b>



</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Lớp



Một ứng dụng C# gồm tập các class và struct


Một lớp gồm tập dữ liệu và phương thức



Cú pháp



<b>class</b>

<b>ClassName</b>



<b>{</b>



<b>…</b>



</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

Phương thức Main



Phương thức

<b>Main</b>

được định nghĩa trong lớp


Chú ý khi viết hàm

<b>Main</b>



<sub>Ký tự </sub>

<sub>M</sub>

<sub> phải viết HOA, “</sub>

<sub>Main</sub>

<sub>”</sub>



<sub>Phải có một hàm </sub>

<b><sub>Main</sub></b>

<sub> là entry point của chương trình</sub>


<sub>Khai báo </sub>

<b><sub>Main</sub></b>

<sub>: </sub>

<sub>static void Main</sub>




</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

Dùng Directive và System namespace



.NET Framework cung cấp nhiều lớp tiện ích



<sub>Các lớp được tổ chức thành các namespace</sub>



System

là namespace được dùng thơng dụng nhất



Khi sử dụng lớp phải chỉ rõ

lớp đó thuộc namespace

nào



<b>System.</b>

<b>Console</b>

<b>.</b>

<b>WriteLine(</b>

<b>"Hello, World"</b>

<b>);</b>



</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

Xuất dữ liệu



Nhập dữ liệu từ bàn phím và xuất dữ liệu ra màn hình trong


C# có thể dùng các

phương thức tĩnh

trong lớp:


System

.

Console



<b>void</b>

<b> Console</b>

<b>.</b>

<b>Write(data);</b>



<b>void</b>

<b> Console</b>

<b>.</b>

<b>WriteLine(data);</b>



Xu t d  li u lên màn hình

ấ ữ ệ



</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

Xuất dữ liệu



<sub>Cú pháp 2:</sub>



<b>void</b>

<b> Console</b>

<b>.</b>

<b>Write(</b>

<b>string</b>

<b> format</b>

<b>, </b>

<b>params</b>

<b>object</b>

<b>[] </b>

<b>arg);</b>




<b>void</b>

<b> Console</b>

<b>.</b>

<b>WriteLine(</b>

<b>string</b>

<b> format</b>

<b>, </b>

<b>params</b>

<b>object</b>

<b>[] </b>

<b>arg);</b>



Trong đó:



format: chứa chuỗi định dạng



arg là mảng các đối tượng sẽ được xuất ra



</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

Xuất dữ liệu



<sub>format là một chuỗi bình thường và có thể có thêm một hay nhiều </sub>



phần định dạng có cú phỏp sau



ã Cỳ phỏp:


<b>{index[,alignment][:formatString]}</b>



Trong ú:



Đ

index: S th t của đối số, bắt đầu từ 0



</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

Nhập dữ liệu



Nhập dữ liệu từ bàn phím



<sub>Cú pháp:</sub>



<b>int</b>

<b> Console</b>

<b>.Read();</b>




</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

Nhập dữ liệu – Chuyển kiểu dữ liệu



Để chuyển một kiểu dữ liệu sang một kiểu dữ liệu khác chúng


ta dùng cú pháp sau



ã

Cỳ phỏp



<b>Kieu.</b>

<b>Parse(</b>

<b>chuoi</b>

<b>);</b>



Đ

Vớ d:



<b>string </b>

<b>s =</b>

<b>123</b>

<b>;</b>



</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

Nhp dữ liệu – Lớp Convert



Cung cấp các phương thức static giúp chuyển đổi giữa các


dữ liệu có các kiểu khác nhau



<b>Phương th cứ</b> <b>Ý nghĩa</b>


ToBoolean Chuy n m t giá tr  sang giá tr  Booleanể ộ ị ị


ToByte Chuy n m t giá tr  sang giá tr  s  nguyên 8­bit không d uể ộ ị ị ố ấ


ToChar Chuy n m t giá tr  sang giá tr  ký t  unicodeể ộ ị ị ự


ToDateTime Chuy n m t giá tr  sang giá tr  DateTime.ể ộ ị ị


ToDecimal Chuy n m t giá tr  sang giá tr  Decimal.ể ộ ị ị



<b>ToDouble</b> Chuy n m t giá tr  sang giá tr  s  th c có đ  chính xác g p đơi 8 byteể ộ ị ị ố ự ộ ấ


ToInt16 Chuy n m t giá tr  sang giá tr  s  nguyên 16­bit có d uể ộ ị ị ố ấ


<b>ToInt32</b> Chuy n m t giá tr  sang giá tr  só nguyên 32­bit có d uể ộ ị ị ấ


ToInt64 Chuy n m t giá tr  sang giá tr  s  nguyên 64­bit có d uể ộ ị ị ố ấ


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19></div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

Từ khóa - keyword



abstract

as

base

bool

break


byte

case

catch

char

checked


class

const

continue

decimal

default


delegat



e

do

double

else

enum


event

explicit

extern

false

finally


fixed

float

for

foreach

goto



if

implicit

in

int

interface


internal

is

lock

long

namespac

e



new

null

object

operator

out


override params

private

protecte

d

public



readonl



</div>

<!--links-->

×