Copyright vietjack.com Nạp chồng toán tử trong C# Operator Overloading là Nạp chồng toán tử. Bạn có thể tái định

Tài liệu tương tự
Copyright vietjack.com Chuỗi (String) trong C# Trong C#, bạn có thể sử dụng các chuỗi (string) như là mảng các ký

Array, Indexer và Collection Array, Indexer và Collection Bởi: phamvanviet truonglapvy Mảng (Array) Mảng là một tập hợp các phần tử có cùng kiểu, được

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

Lập trình và ngôn ngữ lập trình

Chuỗi Chuỗi Bởi: phamvanviet truonglapvy Chuỗi (string) trong C# là một kiểu dựng sẵn như các kiểu int, long, có đầy đủ tính chất mềm dẻo, mạnh mẽ và

Lớp đối tượng trong.net Framework Lớp đối tượng trong.net Framework Bởi: Khuyet Danh Trong chương này chúng ta sẽ tìm hiểu các lớp cơ sở mà.net cung c

Chương trình dịch

Microsoft Word - Bai 7.1.docx

Câu lệnh (statement) Câu lệnh (statement) Bởi: Khuyet Danh Trong C# một chỉ dẫn lập trình đầy đủ được gọi là câu lệnh. Chương trình bao gồm nhiều câu

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Lớp đối tượng String Lớp đối tượng String Bởi: Khuyet Danh Ngôn ngữ C# hỗ trợ khá đầy đủ các chức năng của kiểu chuỗi mà chúng ta có thể thấy được ở c

Bài 7. Con trỏ Mục tiêu: 1. Luyện tập sử dụng con trỏ và địa chỉ của các biến 2. Sử dụng con trỏ khi thao tác với mảng. Giới hạn: không dùng các thư v

Kế thừa và đa hình

Kế thừa

Trường ĐHBK Hà Nội Khoa Điện Bộ môn Điều khiển Tự động Tài liệu hướng dẫn thực hành: KĨ THUẬT LẬP TRÌNH C/C++ Bài 1: Lập trình cơ sở 1 Mục đích bài th

NGÔN NGỮ THỐNG KÊ R

26 Khoa hoïc Coâng ngheä LẬP TRÌNH PHÂN TÁN DÙNG CÔNG NGHỆ MOBILE AGENT VỚI SỰ HỖ TRỢ CỦA JAVA VÀ VOYAGER Tóm tắt ThS. Nguyễn Khắc Quốc * Lập trình ph

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

Java cơ bản

Microsoft Word - co_ban_ve_jquery.docx

Microsoft Word - jsp_exception_handling.docx

Microsoft Word - action_trong_jsp.docx

Lập trình cấu trúc trong Visual Basic Lập trình cấu trúc trong Visual Basic Bởi: Nguyễn Sơn Học xong chương này, sinh viên phải nắm bắt được các vấn đ

sdfsdfsdfsfsdfd

Microsoft PowerPoint - OOP4-OperatorOverloading_new.ppt

Thực hành trên Rose Thực hành trên Rose Bởi: Đoàn Văn Ban Xây dựng biểu đồ thành phần + Tạo lập mới hoặc mở một biểu đồ thành phần đã được tạo lập trư

Xử lý ngoại lệ

Stored Procedures Stored Procedures Bởi: Khoa CNTT ĐHSP KT Hưng Yên Trong những bài học trước đây khi dùng Query Analyzer chúng ta có thể đặt tên và s

Nhúng mã-cách khai báo biến Nhúng mã-cách khai báo biến Bởi: Khoa CNTT ĐHSP KT Hưng Yên Nhúng mã javascript trong trang HTML Bạn có thể nhúng JavaScri

Animation, Modules 6 - Hoạt hình, tách file

Microsoft Word - tao_ung_dung_hello_world_trong_android.docx

A. Hướng dẫn cài đặt ứng dụng Hướng dẫn khách hàng sử dụng Smart OTP Quý khách tải và cài đặt ứng dụng BIDV Smart OTP từ kho ứng dụng App Store cho cá

Microsoft Word - server_response_trong_servlet.docx

Microsoft Word - status_code_trong_servlet.docx

Microsoft Word - custom_font_trong_android.docx

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ STORAGE.COM.VN

CÀI ĐẶ T ANDROID TRÊN NETBEAN Yêu cầ u:trong quá trình cài đặ t phả i kế t nố i mạ ng,và phiên bả n này đượ c cài trên windows. 1.Download Netbean(6.7

Microsoft Word - custom_component_trong_android.docx

Microsoft Word - single_fragment_trong_android.docx

Hàm và lớp template trong Lập trình hướng đối tượng Hàm và lớp template trong Lập trình hướng đối tượng Bởi: unknown Trong phần này, chúng ta tìm hiểu

Microsoft Word - Lab09 - WebSieuthisach.doc

Microsoft Word - kieu_du_lieu_trong_jdbc.docx

Template and Exception Template and Exception Bởi: Thanh Hiền Vũ TEMPLATE Trong phần này, chúng ta tìm hiểu về một trong các đặc tính còn lại của C++,

Microsoft Word - jsp_syntax.docx

Chủ đề :

PowerPoint Presentation

Microsoft Word - client_request_trong_servlet.docx

Microsoft Word - google_map_trong_android.docx

Microsoft Word - activity_trong_android.docx

Bài 1:

9-KiemThu

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập Tự do Hạnh phúc ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ 3 ( ) NGHỀ: QUẢN TRỊ MẠNG MÁY TÍNH MÔN THI: TH

1

Microsoft Word - Chuong trinh DT Da cap nhat Ma moi 6.doc

Microsoft Word - Tailieu win2003.doc

Phụ lục 2: HỒ SƠ NĂNG LỰC NĂM 2014

Presentations

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH ĐỀ CƯƠNG MÔN HỌC 1. THÔNG TIN VỀ MÔN HỌC 1.1. Tên môn học: QUẢN TRỊ HỆ CƠ SỞ DỮ LIỆU 1.

Microsoft Word - auto_complete_trong_android.docx

Kiểm soát truy suất Kiểm soát truy suất Bởi: Khoa CNTT ĐHSP KT Hưng Yên Khái niệm Bảo mật thực chất là kiểm soát truy xuất [1]. Mục đích của bảo mật m

Microsoft Word - session_tracking_trong_servlet.docx

说明书 86x191mm

Microsoft Word - danh-sach-lien-ket-doi-trong-c.docx

Microsoft Word - fragment_transition_trong_android.docx

Folie 1

BƯỚC 1 CÀI LẮP SIM BƯỚC 2 APN BƯỚC 3 ĐĂNG KÝ HOÀN THÀNH Bỏ SIM vào máy di động. Cài đặt APN. Vui lòng khởi động lại thiết bị. Vui lòng mở trình duyệt

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 13. Hàm Nội dung 1. Khái niệm hàm 2. Khai báo và sử dụn

Slide 1

Chương trình dịch

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 5. Kiểu dữ liệu và biểu thức trong C Nội dung 1. Các ki

வ ம ன வ கண க இ ணய த த க ச ற (E - filing of income tax returns) 1. அர அ வல க ம ஆச ய க ஜ ல 31 ஆ தத வ ம ன வ கண க ன த க ச ய க க ட இ ணயதள த ச ல.

Lớp và đối tượng-các hàm và các lớp friend Lớp và đối tượng-các hàm và các lớp friend Bởi: Thanh Hiền Vũ CÁC HÀM VÀ CÁC LỚP friend Một hàm friend của

Microsoft Word - mot_so_ung_dung_android_co_ban.docx

Microsoft Word - Khai thac AWS EC2_Web hosting.docx

Chương trình dịch


July 15 th 2017 Lê Hoàng Video Surveillance HƯỚNG DẪN SỬ DỤNG GuardingVision Guardingvision App Version V3.0.0xx Hỗ Trợ Kỹ Thuật (0283) Địa

Microsoft Word - Toan roi rac

4. Kết luận Đề tài nghiên cứu Phát triển hệ thống nâng hạ tàu bằng đường triền dọc có hai đoạn cong quá độ, kết hợp sử dụng xe chở tàu thông minh đã t

Co s? d? li?u (Database)

ĐỀ CƯƠNG ÔN THI 1. Khái niệm về điều khiển Logic khả trình Có rất nhiều định nghĩa về bộ điều khiển Logic khả trình (Programmable logic controller viế

Microsoft Word - cau-truc-du-lieu-hang-doi.docx

CHƯƠNG 1 : MỞ ĐẦU

Kyõ Thuaät Truyeàn Soá Lieäu

Microsoft Word - 14-bi-quyet-tranh-luan.docx

Microsoft Word - jsp_client_request.docx

ĐỀ CƯƠNG MÔN HỌC NHẬP MÔN TIN HỌC

Microsoft Word - form_trong_html.docx

IPSec IPSec Bởi: Phạm Nguyễn Bảo Nguyên Chúng ta đã biết khi ta sao chép dữ liệu giữa 2 máy hoặc thông qua mạng VPN để nâng cao chế độ bảo mật người q

06-BGP.ppt

KIỂM TOÁN NHÀ NƯỚC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Số: 1173/QĐ-KTNN Hà Nội, ngày 27 tháng 7 nă

ĐỀ CƯƠNG MÔN HỌC NHẬP MÔN TIN HỌC

_IFMP_exam.dvi

Microsoft Word - resource_trong_android.docx

(Tái bản lần thứ hai)

Hướng dẫn cụ thể từng bước để đăng ký sử dụng Đơn đăng ký không tín chỉ sau đó ghi danh vào các lớp không tín chỉ. 1 tháng Sáu, 2018 Các sinh viên dự

Microsoft Word - edittext_trong_android.docx

Microsoft PowerPoint - 02_Address_Book

! LỊCH HỌC CỦA TRẺ 3-4 TUỔI/ DAILY SCHEDULE FOR PRESCHOOL 1 September Tuần 1 / Week 1 Bài học: Trường em Ngày: 5/9 9/9 Unit: My school Date: Sep 5-9 T

Bản ghi:

Nạp chồng toán tử trong C# Operator Overloading là Nạp chồng toán tử. Bạn có thể tái định nghĩa hoặc nạp chồng hầu hết các toán tử có sẵn trong C#. Vì thế, một lập trình viên có thể sử dụng các toán tử với các kiểu tự định nghĩa (user-defined). Các toán tử được nạp chồng trong C# là các hàm với các tên đặc biệt: từ khóa operator được theo sau bởi biểu tượng cho toán tử đang được định nghĩa. Tương tự như bất kỳ hàm nào khác, một toán tử được nạp chồng có một kiểu trả về và một danh sách tham số. Ví dụ, bạn xét hàm sau: public static Box operator+ (Box b, Box c) Box box = new Box(); box.length = b.length + c.length; box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; return box; Hàm trên triển khai toán tử cộng (+) cho một lớp Box tự định nghĩa (user-defined). Nó cộng các thuộc tính của hai đối tượng Box và trả về đối tượng kết quả Box. Triển khai Nạp chồng toán tử trong C# Ví dụ dưới đây minh họa cách triển khai nạp chồng toán tử trong C#: using System; namespace OperatorOvlApplication class Box private double length; // Length of a box private double breadth; // Breadth of a box private double height; // Height of a box public double getvolume() http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1

return length * breadth * height; public void setlength( double len ) length = len; public void setbreadth( double bre ) breadth = bre; public void setheight( double hei ) height = hei; // Overload + operator to add two Box objects. public static Box operator+ (Box b, Box c) Box box = new Box(); box.length = b.length + c.length; box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; return box; class Tester http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 2

static void Main(string[] args) Box Box1 = new Box(); Box Box2 = new Box(); Box Box3 = new Box(); double volume = 0.0; // Declare Box1 of type Box // Declare Box2 of type Box // Declare Box3 of type Box // Store the volume of a box here // box 1 specification Box1.setLength(6.0); Box1.setBreadth(7.0); Box1.setHeight(5.0); // box 2 specification Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0); // volume of box 1 volume = Box1.getVolume(); Console.WriteLine("Volume of Box1 : 0", volume); // volume of box 2 volume = Box2.getVolume(); Console.WriteLine("Volume of Box2 : 0", volume); // Add two object as follows: Box3 = Box1 + Box2; // volume of box 3 volume = Box3.getVolume(); Console.WriteLine("Volume of Box3 : 0", volume); Console.ReadKey(); http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 3

Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả: Volume of Box1 : 210 Volume of Box2 : 1560 Volume of Box3 : 5400 Toán tử có thể nạp chồng và không thể nạp chồng trong C# Bảng dưới miêu tả các toán tử có thể nạp chồng trong C#: Toán tử Miêu tả +, -,!, ~, ++, -- Những toán tử một ngôi này nhận một toán hạng và có thể được nạp chồng +, -, *, /, % Những toán tử nhị phân này nhận một toán hạng và có thể được nạp chồng ==,!=, <, >, <=, >= Các toán tử so sánh có thể được nạp chồng &&, Các toán tử logic điều kiện không thể được nạp chồng một cách trực tiếp +=, -=, *=, /=, %= Các toán tử gán không thể được nạp chồng =,.,?:, ->, new, is, sizeof, typeof Các toán tử này không thể được nạp chồng Ví dụ Từ các khái niệm trên, chúng ta kế thừa ví dụ trên và nạp chồng thêm một số toán tử trong C#: using System; namespace OperatorOvlApplication http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 4

class Box private double length; private double breadth; private double height; // Length of a box // Breadth of a box // Height of a box public double getvolume() return length * breadth * height; public void setlength( double len ) length = len; public void setbreadth( double bre ) breadth = bre; public void setheight( double hei ) height = hei; // Overload + operator to add two Box objects. public static Box operator+ (Box b, Box c) Box box = new Box(); box.length = b.length + c.length; http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 5

box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; return box; public static bool operator == (Box lhs, Box rhs) if (lhs.length == rhs.length && lhs.height == rhs.height && lhs.breadth == rhs.breadth) public static bool operator!=(box lhs, Box rhs) if (lhs.length!= rhs.length lhs.height!= rhs.height lhs.breadth!= rhs.breadth) public static bool operator <(Box lhs, Box rhs) if (lhs.length < rhs.length && lhs.height < rhs.height && lhs.breadth < rhs.breadth) http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 6

public static bool operator >(Box lhs, Box rhs) if (lhs.length > rhs.length && lhs.height > rhs.height && lhs.breadth > rhs.breadth) public static bool operator <=(Box lhs, Box rhs) if (lhs.length <= rhs.length && lhs.height <= rhs.height && lhs.breadth <= rhs.breadth) public static bool operator >=(Box lhs, Box rhs) if (lhs.length >= rhs.length && lhs.height >= rhs.height && lhs.breadth >= rhs.breadth) http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 7

public override string ToString() return String.Format("(0, 1, 2)", length, breadth, height); class Tester static void Main(string[] args) Box Box1 = new Box(); Box Box2 = new Box(); Box Box3 = new Box(); // Declare Box1 of type Box // Declare Box2 of type Box // Declare Box3 of type Box Box Box4 = new Box(); double volume = 0.0; // Store the volume of a box here // box 1 specification Box1.setLength(6.0); Box1.setBreadth(7.0); Box1.setHeight(5.0); // box 2 specification Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0); //displaying the Boxes using the overloaded ToString(): Console.WriteLine("Box 1: 0", Box1.ToString()); Console.WriteLine("Box 2: 0", Box2.ToString()); // volume of box 1 volume = Box1.getVolume(); Console.WriteLine("Volume of Box1 : 0", volume); http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 8

// volume of box 2 volume = Box2.getVolume(); Console.WriteLine("Volume of Box2 : 0", volume); // Add two object as follows: Box3 = Box1 + Box2; Console.WriteLine("Box 3: 0", Box3.ToString()); // volume of box 3 volume = Box3.getVolume(); Console.WriteLine("Volume of Box3 : 0", volume); //comparing the boxes if (Box1 > Box2) Console.WriteLine("Box1 is greater than Box2"); Console.WriteLine("Box1 is greater than Box2"); if (Box1 < Box2) Console.WriteLine("Box1 is less than Box2"); Console.WriteLine("Box1 is not less than Box2"); if (Box1 >= Box2) Console.WriteLine("Box1 is greater or equal to Box2"); Console.WriteLine("Box1 is not greater or equal to Box2"); if (Box1 <= Box2) Console.WriteLine("Box1 is less or equal to Box2"); Console.WriteLine("Box1 is not less or equal to Box2"); http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 9

if (Box1!= Box2) Console.WriteLine("Box1 is not equal to Box2"); Console.WriteLine("Box1 is not greater or equal to Box2"); Box4 = Box3; if (Box3 == Box4) Console.WriteLine("Box3 is equal to Box4"); Console.WriteLine("Box3 is not equal to Box4"); Console.ReadKey(); Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả: Box 1: (6, 7, 5) Box 2: (12, 13, 10) Volume of Box1 : 210 Volume of Box2 : 1560 Box 3: (18, 20, 15) Volume of Box3 : 5400 Box1 is not greater than Box2 Box1 is less than Box2 Box1 is not greater or equal to Box2 Box1 is less or equal to Box2 Box1 is not equal to Box2 Box3 is equal to Box4 http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 10