<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
4/10/2012
Chương 2
<b>Nền tảng ngôn ngữ C#</b>
<b>Giảng viên: ThS. Phạm Thanh An</b>
Khoa công
nghệ thông tin
Đại học Ngân hàng Tp. Hồ Chí Minh
Nội dung trình bày
Kiểu dữ liệu cơ bản.
Biến và hằng.
Biểu thức.
Câu lệnh.
Toán tử.
Namespace.
Các chỉ dẫn biên dịch.
Xử lý ngoại lệ.
Mô tả kiểu dữ liệu trong C#
<b>String</b> <b>Array</b> <b>ValueType</b> <b>Exception</b> <b>Delegate</b> <b>Class1</b>
<b>Multicast</b>
<b>Delegate</b> <b>Class2</b>
<b>Class3</b>
<b>Object</b>
<b>Enum1</b>
<b>Structure1</b>
<b>Enum</b>
<b>Primitive types</b>
Boolean
Byte
Int16
Int32
Int64
Char
Single
Double
Decimal
DateTime
<i><b>System-defined types</b></i>
<i><b>User-defined types</b></i>
<b>Delegate1</b>
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
4/10/2012
Kiểu dữ liệu
C# là một ngữ mạnh về kiểu dữ liệu
Phải khai báo kiểu của mỗi biến, đối tượng khi
sử dụng
integer, float, string, byte, buttons, v.v
C# chia thành hai tập hợp kiểu dữ liệu chính:
Kiểu xây dựng sẵn (built- in)
Kiểu được người dùng định nghĩa (user-defined)
do người lập trình tạo ra (lớp, struct, v.v).
Kiểu dữ liệu (tt)
C# phân tập hợp kiểu dữ liệu này thành
hai loại:
Kiểu dữ liệu giá trị (value type):
<b>int, char , </b>
<b>và structures </b>
Kiểu dữ liệu tham chiếu (reference type):
<b>classes, interfaces, arrays và strings</b>
Kiểu dữ liệu xây dựng sẵn
<b>KiểuC#</b> <b>Số </b>
<b>Byte</b>
<b>Kiểu </b>
<b>.NET</b>
<b>Mơ tả</b> <b>Ví dụ</b>
object Kiểu dữ liệu cơ sở cho tất cả các kiểu
dữ liệu khác.
object o = null;
string Lưu trữ giá trị chuỗi string s =
“hello”;
short 2 Int16 Số nguyên có dấu giá trị từ -32768
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
4/10/2012
Kiểu dữ liệu xây dựng sẵn (tt)
<b>KiểuC#</b> <b>Số </b>
<b>Byte</b>
<b>Kiểu </b>
<b>.NET</b>
<b>Mơ tả</b> <b>Ví dụ</b>
sbyte 1 Sbyte Số nguyên có dấu ( từ -128 đến 127)
byte 1 Số nguyên không dấu từ 0 - 255
long 8 Int64 Kiểu số nguyên có dấu có giá trị trong
khoảng : -9.223.370.036.854.775.808
đến 9.223.372.036.854.775.807
ulong 8 Uint64 Số nguyên không dấu từ 0 đến
18446744073709551615
Kiểu dữ liệu xây dựng sẵn (tt)
<b>Kiểu </b>
<b>C#</b>
<b>Số </b>
<b>Byte</b>
<b>Kiểu </b>
<b>.NET</b>
<b>Mô tả</b> <b>Ví dụ</b>
float 4 Single Kiểu dấu chấm động, giá trị xấp xỉ từ
3,4E-38 đến 3,4E+38, với 7 chữ số
có nghĩa. Có thêm hậu tố F sau giá trị
float val =
1.23F;
double 8 Double Kiểu dấu chấm động có độ chính xác
gấp đơi, giá trị xấp xỉ 1.7E308
-1.7E+308, với 15,16 chữ số có nghĩa
decimal 8 Decimal Chính xác đến 28 con số và giá trị
thập phân, được dùng trong tính tốn
tài chính, địi hỏi hầu tố “m” hay “M”
theo sau giá trị
Kiểu dữ liệu xây dựng sẵn (tt)
<b>Kiểu C#</b> <b>Số </b>
<b>Byte</b>
<b>Kiểu </b>
<b>.NET</b>
<b>Mơ tả</b> <b>Ví dụ</b>
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
4/10/2012
Kiểu dữ liệu xây dựng sẵn (tt)
<b>Ghi chú:</b>
Kiểu giá trị logic chỉ có thể nhận được giá trị là true hay
false.
Khác với C/C++, một giá trị nguyên không thể gán vào
một biến kiểu logic trong C# và khơng có bất cứ chuyển
đổi ngầm định nào
Biên dịch: xuất hiện lỗi
<i>Error CS0029 : Cannot implicitly convert type 'int' to 'bool</i>
'
Kiểu dữ liệu xây dựng sẵn (tt)
Kiểu dữ liệu ký tự thể hiện các ký tự Unicode
Bao
gồm các ký tự đơn giản, ký tự theo mã Unicode
và các ký
tự thoát khác được bao trong những dấu
nháy
đơn
Ký
tự thoát là những ký tự đặc biệt bao gồm hai ký tự
liên
tiếp trong đó ký tự dầu tiên là dấu chéo ‘\’. Ví dụ,
\t là
dấu tab
Giá trị mặc định của kiểu dữ liệu
<b>Kiểu</b>
<b>Giá trị mặc định</b>
Numeric (int,float,short)
0 hoặc 0.0
Bool
false
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
4/10/2012
Các ký tự đặc biệt
<b>Ký tự</b>
<b>Ý nghĩa</b>
\'
Dấu nháy đơn
\"
Dấu nháy kép
\\
Dấu chéo (Backslash)
\0
Ký tự Null
\a
Alert
Các ký tự đặc biệt (tt)
<b>Ký tự</b>
<b>Ý nghĩa</b>
\b
Backspace
\f
Sang trang Form feed
\n
Dòng mời (Newline)
\r
Đầu dòng (Carriage return)
\t
Tab ngang (Horizontal tab)
\v
Tab dọc (Vertical tab)
Chuyển đổi kiểu dữ liệu
Chuyển đổi kiểu dữ liệu này qua kiểu dữ liệ khác
Có 2 cách: chuyển đổi tường minh và ngầm định
Chuyển đổi ngầm định được thực hiện một cách tự
động đảm bảo là không mất thông tin.
Từ kiểu nhỏ sang kiểu lớn
short x = 10;
int y = x; // chuyển đổi ngầm định
Trường hợp này không thực hiện
short x;
int y = 100;
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
4/10/2012
Chuyển đổi kiểu dữ liệu (tt)
short x;
int y = 500;
x = (short) y; //
<i>Ép kiểu tường minh, trình biên dịch khơng báo lỗi</i>
Để chuyển đổi một ký tự sang mã ASCII
(int)'A‘
Để chuyển một số sang ký tự ta thực
hiện như sau:
(char)65
Chuyển đổi ngầm định
<b>From</b> <b>To</b>
sbyte short, int, long, float, double, decimal
byte short, ushort, int, uint, long, ulong, float, double, decimal
short int, long, float, double, decimal
ushort int, uint, long, ulong, float, double, decimal
int long, float, double, decimal
uint long, ulong, float, double, decimal
long, ulong float, double, decimal
float double
char ushort, int, uint, long, ulong, float, double, decimal
Chuyển đổi tường mình
Do lập trình viên chỉ định
Xảy ra khi
Ép từ kiểu lớn qua kiểu nhỏ: có thể mất giá trị
doublex = 74.86;
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
4/10/2012
Ví dụ sử dụng kiểu dữ liệu
Khai bao trước khi
sử dụng
Gán giá trị trước
khi sử dụng
<b>public class App</b>
<b>{</b>
<b>public static void Main()</b>
<b>{</b>
<b>int width, height;</b>
<b>width = 2;</b>
<b>height = 4;</b>
<b>int area = width * height;</b>
<b>int x;</b>
<b>int y = x * 2;</b>
<b>...</b>
<b>}</b>
<b>}</b>
Khai báo
Khai báo + khởi đầu
Lỗi
Ví dụ
using System;
class TestDefaultValues
{
static void Main()
{
int number, result;
<b>number=5;</b>
result=100 * number;
<b>Console.WriteLine (“Result is {0} when 100 </b>
<b>is multiplied by number {1}”, result, number);</b>
}
}
Ví dụ: chuyển đổi kiểu dữ liệu
<b>int i = 5;</b>
<b>double d = 3.2;</b>
<b>string s = "496";</b>
<b>d = i;</b>
<b>i = (int) d;</b>
<b>i = System.Convert.ToInt32(s);</b>
Chuyển đổi ngầm định
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
4/10/2012
Input / Output trong C#
Sử dụng các phương thức của lớp Console
trong không gian tên System
Console.ReadLine()
Console.WriteLine()
<b>Định danh</b>
Là tên mà người lập trình chỉ định cho các kiểu dữ
liệu, các phương thức, tên biến, hằng, lớp hay đối
tượng....
Định danh khơng trùng với từ khóa của C#
Định danh phải bắt đầu với một ký tự chữ cái hay dấu
gạch dưới,
các ký tự còn lại phải là ký tự chữ cái, chữ số, dấu gạch dưới.
C# phân biệt chữ hoa và chữ thường
Ví dụ:
Định danh đúng:
result , _score, footballTeam, plan9
Định danh sai:
result%, footballTeam$, 9plan
Các từ khóa của C#
<b>abstract</b> <b>const</b> <b>extern</b> <b>in</b> <b>operator</b> <b>sbyte</b> <b>throw</b> <b>virtual</b>
<b>as</b> <b>continue</b> <b>false</b> <b>int</b> <b>out</b> <b>sealed</b> <b>true</b> <b>void</b>
<b>base</b> <b>decimal</b> <b>finally</b> <b>interface</b> <b>override</b> <b>set</b> <b>try</b> <b>volatile</b>
<b>bool</b> <b>default</b> <b>fixed</b> <b>internal</b> <b>params</b> <b>short</b> <b>typeof</b> <b>where</b>
<b>break</b> <b>delegate</b> <b>float</b> <b>is</b> <b>partial</b> <b>sizeof</b> <b>uint</b> <b>while</b>
<b>byte</b> <b>do</b> <b>for</b> <b>lock</b> <b>private</b> <b>stackalloc ulong</b> <b>yield</b>
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
4/10/2012
Biến
Biến là nơi lưu dữ liệu của chương trình
Dữ liệu của biến
Nằm trong bộ nhớ vật lý (physical RAM)
Có thể thay đổi giá trị
Phải khai báo trước khi dùng
Định danh: tên để đại diện cho biến
Kiểu dữ liệu: dạng lưu trữ dữ liệu của biến
Biến (tt)
Bạn có thể khai báo kết hợp khởi đầu giá trị
cho
biến
Tên
biến không được trùng với từ khóa của
C#,
nếu muốn sử dụng từ khóa làm tên biến
phải thêm @ trước từ khóa
Khai báo
biến:
<Kiểu> tên biến ;
int tuoi;
tuoi = 21 ;
Console.WriteLine(tuoi);
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
4/10/2012
Ví dụ: về khai báo biến
using System;
using System.Collections.Generic;
using System.Text;
namespace InitializingVariables
{ class Values
{ static void Main( )
{
int myInt = 7;
System.Console.WriteLine(“Khởi đâu, myInt: {0}", myInt);
myInt = 5;
System.Console.WriteLine(“Sau khi gán, myInt: {0}", myInt);
}
}
}
Output: Khởi đầu, myInt: 7 sau khi gán, myInt: 5
Ví dụ: sử dụng từ khóa làm tên biến
using System;
class VariableDemo
{
public static void Main()
{
string @string;
@string= ”Su dung tu khoa lam ten bien”;
Console.WriteLine (@string);
}
}
Hằng
Hằng là một biến mà giá trị của nó khơng thể
thay đổi
Phải gán giá trị ngay khi khai báo
Khai báo hằng
</div>
<!--links-->