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

ĐỀ CƯƠNG C# docx

84 411 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề C# Basic Program Structure and Techniques
Tác giả Luong Thanh Binh
Trường học University of Information Technology
Chuyên ngành Computer Science
Thể loại Đề Cương
Năm xuất bản 2023
Thành phố Hanoi
Định dạng
Số trang 84
Dung lượng 1,31 MB

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

Nội dung

FirstApplication trong Solution hiện hành.Kế đến bạn khai báo biến Public và sửdụng 2 biến đó trong 2 phương thức như ví dụ sau đây: } } Bạn nhập đoạn Code này vào rồi làm như sau:... Kế

Trang 1

Đề Cương C#

Câu 1: Cấu trúc cơ bản của chương trình C#.

//Vùng bắt đầu khai báo, sử dụng không gian tên

using System;

using System.Collections.Generic;

using System.Text;

//Vùng kết thúc sử dụng không gian tên

//Khai báo không gian tên của ứng dụng

namespace OnTapFull

{

//Vùng bắt đầu khai báo các class

static class Program

Câu 2: Thực đơn Refactor.

Với số lượng lớn mã chương trình trong 1 Project, khi có nhu cầu về thay thế, chuyển đổi tầm vực của biến, sắp xếp thứ tự tham số,… thì bạn sử dụng dạng kỹ thuật Refactor từ thực đơn của Visual Studio NET 2005

Refactor cung cấp các kỹ thuật như: Extract Method, Encapsulate Field, Extract Interface, Reorder Parameters, Remove Parameters, Rename và Promote Local Variable to Parameters

Extract Method: Cho phép định nghĩa 1 phương thức mới dựa trên đoạn chương

trình đang chọn, sau đó khai báo để gọi phương thức vừa tạo ngay trên đoạn mã đãtách thành phương thức

Bạn hãy thực hành với ví dụ dưới đây:

//Vùng bắt đầu khai báo, sử dụng không gian tên

using System;

using System.Collections.Generic;

using System.Text;

Trang 2

//Vùng kết thúc sử dụng không gian tên.

//Khai báo không gian tên của ứng dụng

namespace OnTapFull

{

//Vùng bắt đầu khai báo các class

static class Program

Sau đó 1 cái table nữa hiện ra yêu cầu nhập tên hàm muốn tạo ra:

Bạn nhập tên của hàm muốn tạo và nhấp OK

Trang 3

Đoạn Code sẽ như thế này:

//Vùng bắt đầu khai báo, sử dụng không gian tên

using System;

using System.Collections.Generic;

using System.Text;

//Vùng kết thúc sử dụng không gian tên

//Khai báo không gian tên của ứng dụng

namespace OnTapFull

{

//Vùng bắt đầu khai báo các class

static class Program

Trang 4

Đầu tiên bạn tạo class ConCho.cs

private string ten;

public string Ten

{

get { return ten; }

set { ten = value; }

}

private string giong;

public string Giong

{

get { return giong; }

set { giong = value; }

}

private int tuoi;

public int Tuoi

{

get { return tuoi; }

Trang 5

set { tuoi = value; }

}

private string maulong;

public string Maulong

{

get { return maulong; }

set { maulong = value; }

a.Maulong = "Trang Vang";

Console.WriteLine("Ten Con Cho: {0}",

Thế là xong yêu cầu bài toán ^^!.

Câu 4: Encapsulate Filed?

Encapsulate Field chuyển một biến từ tầm vực Public (công khai) sang tầm vực cánhân (private) bằng thuộc tính NET Ví dụ bạn thêm Class2 vào Project có tên

Trang 6

FirstApplication trong Solution hiện hành.Kế đến bạn khai báo biến Public và sửdụng 2 biến đó trong 2 phương thức như ví dụ sau đây:

}

}

Bạn nhập đoạn Code này vào rồi làm như sau:

Trang 7

Một cái bảng hiện ra, bạn làm tiếp như sau:

Nhấp OK, một cái bảng nữa hiện ra bạn làm tiếp như hình dưới thì ta sẽ có được đoạn Code sau đây:

Trang 8

public void PrintValue()

Trang 9

Câu 5: Extract Interface?

Trong khi kỹ thuật Extract Method là trích 1 đoạn mã đang chọn thành 1 phương thức nào đó rồi thay thế đoạn mã bởi khai báo gọi chính phương thức vừa tạo ra thì kỹ thuật Extract Interface dùng để khai báo giao tiếp (Interface) cho những phương thức trong class rồi tự động khai báo kế thừa Interface đó trong Class chứacác phương thức vừa chọn

Giả sử, thêm mới Class vào Project có tên FirstApplication và đặt tên Class2 Kế đến, bạn khai báo hai biến public và sử dụng hai biến đó trong hai phương thức như ví dụ sau đây

get { return ten; }

set { ten = value; }

}

float gia;

public float Gia

{

get { return gia; }

set { gia = value; }

Trang 10

Sau đó bạn nhấp Select All và nhấp OK:

Sau khi hoàn thành thì ta sẽ có được đoạn Code sau:

Trang 11

float Gia { get; set; }

string Ten { get; set; }

}

}

Sau khi thực hiện xong thì kỹ thuật này tự động thêm khai báo kế thừa từ

Interface có tên là IlinhKien.cs như sau:

get { return ten; }

set { ten = value; }

}

float gia;

public float Gia

{

get { return gia; }

set { gia = value; }

Trang 12

Câu 6: Biên dịch đoạn mã cs sau ra file exe từ tiện ích CSC.exe của

Windows.

Bước 1: Mở Notepad và nhập đoạn Code này vào sau đó lưu đưới đuôi cs.

Bước 2: Bạn lưu File này vào trong một ổ đĩa nào đó ví dụ như bạn bỏ nó vào

ổ D: như cây thư mục sau (File Bai.cs):

Bước 3: Sau đó bạn biên dịch bằng cách: Start > All Programs > Microsoft Visual Studio 2005 > Visual Studio Tools > Visual Studio 2005 Command Prompt.

Trang 13

Như hình sau:

Một màn hình đen thui hiện ra, bạn làm như hình dưới, để biết tham số các lệnh thì bạn làm như sau (Bạn nhập CSC /?, window sẽ cho bạn biết tất cả các tham số dòng lệnh):

Trang 14

Và bây giờ bạn chỉ việc nhập vào lệnh như sau:

Thế là bạn đã biết cách biên dịch từ file cs ra file exe như thế đó ^_^!.

Câu 7: Tầm vực của biến?

Tầm vực của biến phụ thuộc vào một trong từ khóa Public, Protected, internal, private bạn chỉ định trước tên biến.Mặc định không khai báo từ khóa trước biến nằm ngoài phương thức là Private

Lưu ý, các từ khóa public, protected, internal, private có thể sử dụng các phương thức hay hằng, enum

//Khai báo hai biến public

public int qtty = 0;

public float price = 0;

Trang 15

//Khai báo khởi tạo đối tượng Class 1.

Class1 cls = new Class1();

//Truy cập đến hai biến public

cls.qtty = 10;

cls.price = 10.5f;

//In giá trị hai biến

Console.WriteLine("Qty = {0}, Price = {1}",cls.qtty, cls.price);

Câu 8: Từ khóa Protected?

Nếu sử dụng từ khóa protected trước biến thì giới hạn quyền truy cập trong class

và những class kế thừa class chứa đựng biến đó

Ví dụ, bạn khai báo biến amount và protected trong Class1 Kế đến bạn khai báo phương thức Sum để tính toán giá trị rồi gán vào vho biến tax và amount như ví dụdưới đây:

Khởi tạo biến Class1:

public int qtty = 0;

public float Price = 0;

float tax = 0;

//Khai báo biến tầm vực là protected

Trang 16

protected float amount = 0;

public void sum()

{

tax = qtty * Price * 0.1f;

//gán giá trị cho biến

amount = qtty * Price - tax;

Trang 17

//Khai báo và khởi tạo đối tượng Class2

Class2 cls = new Class2();

//Truy cập 2 biến public trong Class1

cls.qtty = 10;

cls.Price = 10.5f;

//In giá trị của hai biến

Console.WriteLine("Qty = {0}, Price = {1}",cls.qtty, cls.Price);

//Gọi phương thức trong Class1

Thế là xong yêu cầu của bài toán ^^!.

Câu 9: Từ khóa Internal?

Giới hạn truy cập trong Assembly hiện hành Ví dụ, trong thư mục internalvariablebạn thêm tập tin Class1.cs và khai báo biến Age như sau:

Trang 18

Kế đến, bạn biến dịch Class1 này ra thành tập tin DLL từ cửa sổ Command

Prompt như hình dưới:

Sau đó tạo mới tập tin Class3.cs trong thư mục internalvariable ròi khai báo và khởi tạo đối tượng Class1 như ví dụ dưới đây:

Câu 10: Từ khóa Private?

Từ khóa Private ấn định biến cho phép truy cập chỉ bên trong Class khai báo nó.Ngoài ra, nếu biến khai báo bên trong Class không ấn định 1 trong 4 từ khóa public, private, protected, hay internal thì mặc định là Private

Chẳng hạn bạn khai báo biến qtty và price trong Class1 của Project mang tên privatevariable, rồi sau đó định nghĩa phương thức Sum để tính giá trị tax và amount như ví dụ dưới đây`:

Class1.cs:

using System;

using System.Collections.Generic;

using System.Text;

Trang 19

namespace Private

{

class Class1

{

//Khai báo biến Private

private int qtty = 100;

//Mặc định là private

float price = 20.5f;

public void Sum()

{

float tax = qtty * price * 0.1f;

float amount = qtty * price - tax;

Console.WriteLine("Tax = {0}", tax);

Console.WriteLine("Amount = {0}", amount); }

Trang 20

Câu 11: Biến cục bộ:

Biến cục bộ là biến có tầm vực ngay bên trong phương thức mà nó được khai báo Chẳng hạn, bạn khai báo hai biến cục bộ có tên tax và amount trong phương thức Main như ví dụ dưới đây

//Khai báo phương thức Sum

public void Sum()

{

Class1 cls = new Class1();

//Khai báo 2 biến cục bộ

float tax = cls.qtty * cls.price * 0.1f; float amount = cls.qtty * cls.price - tax; Console.WriteLine("Tax = {0}", tax);

Console.WriteLine("Amount = {0}", amount); }

//Khai báo phương thức Main()

static void Main(string[] args)

//Khai báo biến Private

private int qtty = 100;

float price = 20.5f;

}

}

Câu 12: Từ khóa Static?

Từ khóa Static sử dụng cho Class, phương thức (Method), Constructor, thuộc tính (Property), biến cố (Event) và biến Bạn có thể tìm hiểu chi tiết về từ khóa static dùng cho class trong chương trình bày lớp, phương thức và thuộc tính Trong phầnnày chúng ta chỉ tìm hiểu từ khóa static dùng khi khai báo biến

Trang 21

Chúng ta bắt đầu từ phương thức Main của chương trình C#, bên trong phương thức Main có truy cập đến hai biến khai báo bên ngoài phương thức Main là qtty

và price như ví dụ sau:

static int qtty = 100; //Nếu không có biến

static chỗ này thì nó sẽ báo lổi ngay, vì không thể truy cập vào hai biến nằm ngoài phương thức Main này được, như hình dưới

static float price = 20.5f;

static void Main(string[] args)

{

float tax = qtty * price * 0.1f;

float amount = qtty * price - tax;

Console.WriteLine("Tax = {0}", tax);

Console.WriteLine("Amount = {0}", amount); Console.ReadLine();

Ví dụ, bạn khai báo hai biến stattic là qtty và price trong khi đó biến tax là biến public không dùng từ khóa static như ví dụ sau:

using System;

using System.Collections.Generic;

using System.Text;

Trang 22

namespace Bai

{

class Class1

{

public static int qtty = 10;

public static float price = 100;

public float tax = 0.1f;

}

}

Trong phương thức Main, bạn có thể truy cập đế biên tax khi khai báo và khởi tạo đối tượng Class1, nghĩa là sau khi nhấn phím dấu chấm, tên biến tax xuất hiện trong cửa sổ Intellisence như hình dưới

Trang 23

Câu 13: Hằng và Enum?

1, Hằng: Từ khóa const dùng để chỉ định khai báo trường hay một biến cục bộ với

giá trị cho trước và không thể thay đổi trong quá trình thực thi

Thông thường khai báo hằng khi giá trị nào đó không thay đổi, ví dụ bạn khai báo hằng nắm giữ giá trị là số PI bằng 3.14 như ví dụ dưới đây:

public const double PI = 3.14;

public const string company = "Thanh Binh", email = "redhacker3824@gmail.com";

Trang 24

Bạn phải truy cập trực tiếp từ Class1 thì mới có thể gọi hằng ra sử dụng được Kết quả như sau:

2, Enum: Từ khóa Enum sử dụng để định nghĩa một bảng dạng liệt kê

(enumeration) các hằng có kiểu dữ liệu khác nhau, bảng liệt kê này còn được gọi

là enumerator list

Mọi phẩn tử trong enumeration đều có kiểu dữ liệu, bạn có thể gán giá trị bất kỳ làkiểu số tổng quát (integral) ngoài trừ kiểu char Nếu phần tử trong enumeration không khai báo kiểu thì kiểu dữ liệu mặc định là int Nếu không khai báo giá trị thìgiá trị của phần tử thứ nhất mặc định là 0 các phần tử kế tiếp có giá trị tăng lên 1

Ví dụ, bạn khai báo enum là 7 ngày trong tuần, phần tử đầu tiên sẽ có giá trị mặc định là 0 như sau:

Trang 25

{

static void Main(string[] args)

{

//Chuyển đổi kiểu dữ liệu

int x = (int)Days.Sat;

int y = (int)Days.Sun;

Câu 14: Phép toán và chuyển đổi kiểu dữ liệu?

C# cung cấp tập các phép toán bằng các ký tự hiếm tượng trưng cho phép bạn thựchiện các biểu thức tính toán Phép toán trong C# chia thành các nhóm như: phép toán số học (arithmetic), logical, gán, so sánh,… Chẳng hạn như: = =, !=, <, >, <=,

>=, binary +, binary -, ^, &, |, ~, ++, và sizeof()

Ngoài ra, một số phép toán có thể cài đặt chồng (overloading) sẽ được trình bày trong cuốn sách “Lập trình hướng đối tượng”

1.1, Phép toán Arithmetic (Phép toán số học)

Phép toán số học bao gồm 5 phép toán chính: +, -, *, /, % Ví dụ, bạn khai báo mộtđoạn chương trinh sử dụng các phép toán số học như ví dụ dưới đây:

Trang 26

x.WriteLine("{0} - {1} = {2}", i, j, i - j);

x.WriteLine("{0} * {1} = {2}", i, j, i * j);

x.WriteLine("{0} / {1} = {2}", i, j, i / j);

x.WriteLine("{0} % {1} = {2}", i, j, i % j);

C# cung cấp các phép toán logic ứng với các ký hiệu tượng trưng như: &, |, ^, !, ~,

&&, ||, true, false Thường các phép toán này được sử dụng trong các phát biểu điều khiển

Chẳng hạn, bạn khai báo một số biến và sử dụng các phép toán như ví dụ sau:

Trang 27

x.Write("Enter the second number: ");

1.3: Phép toán tăng giảm:

Phép toán tăng giảm cho phép bạn tăng hoặc giảm giá trị hiện tại đi giá trị là 1 Ví

dụ bạn có thể tăng biến i lên 1 và giảm biến j xuống 1 như ví dụ sau đây:

x.WriteLine("i increment 1 = {0}", i);

//Biến j giảm giá trị đi 1

Trang 28

Kết quả sau khi biên dịch thì nó như sau:

Cả 2 biến đều có biến đổi:

Đối với biến i do có phép toán i++ nên tăng thêm đơn vị,biến j do chịu phép toán giảm nên bị trừ đi 1 đơn vị

1.4, Phép toán quan hệ:

Phép toán quan hệ (Relational) bao gồm các phép toán như: = =, !=, <, >, >=, <= thường sử dụng các phát biểu điều khiển Ví dụ, bạn khai báo sử dụng các phép toán trên như sau:

Trang 29

1.5, Phép toán gán:

Phép toán gán (Assignment) trong C# bao gồm: = +=, -=, *=, /=, %=, &=, |=, ^=,

<<=, >>=, ?? Trong đó phép toán = dùng để gán giá trị cho biến hay biểu thức, +=, -=, *=, /=, %=, &=, |= dùng để gán tiếp giá trị sau một phép tính tương ứng cho biến Chẳng hạn, += cho phép gán thêm giá trị sau phép cộng vào giá trị đang

Trang 30

Lưu ý trong chương trước chúng ta đã tìm hiểu kiểu dữ liệu Nullable, khi làm việc với biến có kiểu này bạn có thể sử dụng phép toán gán ?? để gán giá trị mặc định cho biến khi giá trị của biến đó là null.

Ví dụ bạn khai báo biến xInt có kiểu Nullable với giá trị khởi tạo là null, sau đó khai báo biến yInt có kiểu int gán bằng giá trị của biến xInt, nếu biến xInt là null thì giá trị của yInt là 10 như ví dụ sau:

//Khai báo biến kiểu Nullable của int

int? xInt = null;

//Khai báo biến y kiểu int gán giá trị từ biến x

int yInt = xInt ?? 10;

Và kết quả nó sẽ trả về 10 như hình sau:

1.6, Phép toán chuyển kiểu dữ liệu:

Phép toán chuyển kiểu dữ liệu () được sử dụng để ép kiểu dữ liệu hiện hành của đối tượng sang kiểu khác Chẳng hạn, bạn khai báo biến có kiểu dữ liệu là object, sau khi gán giá trị cho biến này là 10, bạn có thể ép kiểu của biến này sang kiểu sốnguyên như ví dụ sau:

Object: Từ khóa này có ý nghĩa được thể hiện như sau:

Trang 31

Support all classes in the NET Framework class hierarchy and provides low-level services to derived classes This is the ultimate base class of all classes in the NET Framework, it is the root of the type hierarchy.

Những cái này ở đâu ra, thì bạn xem hình sau:

Bạn muốn xem hướng dẫn cách dùng hàm thì để chuột vào cái hàm đó, sau đó cỡ khoảng 2s thì wizard hướng dẫn tự động xuất hiện, hướng dẫn cho bạn cách sử dụng hàm đó và khai báo nó lấy ở đâu ra

Trang 32

int i = (int)cls.getObject();

Lưu ý, phép toán này chỉ hợp lệ khi biến bạn cần ép kiểu đang nắm giữ giá trị

1.7, Phép toán điều kiện:

Phép toán điều kiện ?: Sử dụng trong trường hợp phát biểu điều khiển if…else chỉ

có một câu lệnh Ví dụ, bạn có khai báo như sau:

Trang 33

Phép toán :: dùng để định danh ứng với nhận dạng cho không gian tên Ví dụ, tạo

Project rồi đặt tên AliasOperator, bên trong Project này bạn thêm Class và đặt tên System như ví dụ dưới đây

Khai báo biến trùng tên với đối tượng:

Trang 34

Khi biên dịch đoạn chương trình trên, lỗi phát sinh do không tìm thấy 2 phương thức WriteLine và ReadLine của biến Để sử dụng 2 phương thức này của đối tượng Console, bạn cần chỉ định nhận dạng không gian tên như ví dụ dưới đây:

global::System.Console.ReadLine();

}

}

}

Kết quả cuối cùng như sau:

1.9, Phép toán khởi tạo:

Phép toán new dùng để khởi tạo đối tượng Ví dụ, bạn khai báo đoạn chương trình

để liệt kê danh sách tên, ngày tạo, số lượng tập tin của các thư mục trong ổ đĩa C:\ bằng cách sử dụng đối tượng DirectoryInfo như ví dụ sau:

Khởi tạo đối tượng DirectoryInfo:

using System;

using System.IO;

Trang 35

1.10, Phép toán kiểm tra tràn số:

Phép toán kiểm tra tràn số bao gồm 2 phép toán chính là: checked và unchecked Trong đó, phép toán checked cho phép kiểm tra tràn số khi thực hiện các phép toán số học ứng với toán hạng là số hoặc chuyển đổi giữa chúng

Phép unchecked dùng để chỉ thị phép toán hay biểu thức không cần kiểm tra tràn

số trong quá trinh thực hiện tính toán hay chuyển đổi

Trang 36

Normal1 nor = new Normal1();

Console.WriteLine("Normal Output Value is: {0}", nor.Normal());

Console.ReadLine();

}

}

}

Và kết quả như sau:

Sử dung phép toán checked:

using System;

using System.Collections.Generic;

using System.Text;

namespace Normal

Trang 37

Khi thưc thi chương trình chính và gọi phương thức CheckedOverFlow thì kết quảhiển thị như trên.

Trang 38

//Khai báo khởi tạo mảng kiểu object.

object[] objArray = new object[5];

//Gán giá trị cho từng phần tử mảng

Trang 39

objArray[0] = new Class1();

objArray[1] = "Ngo Thi Yen Phuong";

objArray[2] = "C# 2005";

objArray[3] = 100;

objArray[4] = new Class1();

for (int i = 0; i < objArray.Length; i++) {

//Gán biến chuỗi bằng phần tử mảng thứ i

string s = objArray[i] as string;

else

{

Console.WriteLine("Not a string"); }

Phép toán is kiểm tra đối tượng có giống như kiểu dữ liệu mà bạn muốn so sánh

Ví dụ, thiết kế Form bao gồm các điều khiển (Control) trên Form như hình sau:

Để xóa tất cả dữ liệu mà người dùng đã nhập, bạn có thể khai báo đoạn chương trình trong biến cố Click của nút Reset Bằng cách sử dụng phép toán is để xét các điều khiển là TextBox thì gán thuộc tính Text bằng rỗng, nếu điều khiển là

RadioButton thì gán thuộc tính Checked bằng true

Thiết kế Form như sau:

Thiết kế nút Reset làm sao khi Click vào nó thì nội dung người dùng nhập vào đềubiến mất như Form sau:

Trang 40

Sau khi ấn Reset nó trở thành như sau:

Ngày đăng: 26/07/2014, 04:20

TỪ KHÓA LIÊN QUAN

w