Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Constructor Overloading (Nạp chồng Constructor) trong C#


Khi nhiều hơn một constructor với cùng tên được định nghĩa trong cùng lớp, chúng được gọi là nạp chồng (overloaded), nếu tham số khác nhau cho mỗi constructor.

Hãy xem ví dụ để học cách làm việc với Constructor Overloading trong C#.

Trong ví dụ, chúng ta có hai môn học và khai báo chuỗi cho Tên sinh viên.

private double SubjectOne; 
private double SubjectTwo; 
string StudentName;

Chúng ta hiển thị kết quả của ba sinh viên ở các môn khác nhau. Cho ví dụ của chúng ta, để cho thấy constructor overloading, tên chỉ hiển thị cho sinh viên thứ 3.

Student s1 = new Student(); 
Student s2 = new Student(90); 
Student s3 = new Student("Amit", 88, 60);

Bạn có thể chạy mã sau để triển khai constructor overloading trong C#.

Ví dụ

using System; 

namespace Program { 
    class Student { 
        private double SubjectOne; 
        private double SubjectTwo; 
        string StudentName; 
        
        public Student() { 
            this.SubjectOne = 80; 
        } 
        
        public Student(double SubjectOne) { 
            this.SubjectOne = SubjectOne; 
        } 
        
        public Student(string StudentName, double SubjectOne, double SubjectTwo) { 
            this.SubjectOne = SubjectOne; 
            this.SubjectTwo = SubjectTwo; 
            this.StudentName = StudentName; 
        } 
        
        public double GetSubjectOneMarks() { 
            return this.SubjectOne; 
        } 
        
        public double GetSubjectTwoMarks() { 
            return this.SubjectTwo; 
        } 
        
        public string GetStudentName() { 
            return this.StudentName; 
        } 
    } 
    
    class Program { 
        static void Main(string[] args) { 
            Student s1 = new Student(); 
            Student s2 = new Student(90); 
            Student s3 = new Student("Amit", 88, 60); 
            Console.WriteLine("Thứ nhất"); 
            Console.WriteLine("Điểm môn 1: {0}", s1.GetSubjectOneMarks()); 
            Console.WriteLine(); 
            Console.WriteLine("Thứ hai"); 
            Console.WriteLine("Điểm môn 1: {0}", s2.GetSubjectOneMarks()); 
            Console.WriteLine(); 
            Console.WriteLine("Thứ ba"); 
            Console.WriteLine("Tên sinh viên: {0}", s3.GetStudentName()); 
            Console.WriteLine("Điểm môn 1: {0}", s3.GetSubjectOneMarks()); 
            Console.WriteLine("Điểm môn 2: {0}", s3.GetSubjectTwoMarks()); 
            Console.ReadKey(); 
        } 
    } 
}

Kết quả

Thứ nhất 
Điểm môn 1: 80 
Thứ hai 
Điểm môn 1: 90 
Thứ ba 
Tên sinh viên: Amit 
Điểm môn 1: 88 
Điểm môn 2: 60