mình đang viết 1 Console Application về quản lý sinh viên trên C#, application của mình có hai class là Students và Program như bên dưới, và lỗi sảy ra ở phương thức AddStudents() trong lớp Program, câu lệnh bị lỗi là arrStudents[iCount] = new Students();
nó xuất thong báo lỗi khi nhấn F5: '_11520537.Students.Students()' is inaccessible due to its protection level
Cảm ơn các bạn, mình đã giải quyết được lỗi này, nhưng có một điều mà mình không hiểu, nếu như khai báo hai hàm khởi tạo trong lớp Students như trên mà không có public ở trước thì không thể dùng nó (đây chính là lỗi và đã được giải quyết bang việc them public), nhưng một chuyện khá hay là nếu bỏ cả hai hàm khởi tạo trên (nghĩa là dùng hà khởi tạo mặc định) thì chương trình không báo lỗi, ai giải thích việc này dùm cái.
nó xuất thong báo lỗi khi nhấn F5: '_11520537.Students.Students()' is inaccessible due to its protection level
Code:
using System; namespace _11520537 { public class Students { string name; int ID; DateTime dateOfBirth; string address; int phone; Students() { name = null; ID = 0; dateOfBirth = new DateTime(); address = null; phone = 0; } Students(Students S) { name = S.name; ID = S.ID; dateOfBirth = S.dateOfBirth; address = S.address; phone = S.phone; } public void Input() { Console.Write("Enter Student' name:\t"); name = Console.ReadLine(); Console.Write("Enter Student' code:\t"); ID = int.Parse(Console.ReadLine()); Console.WriteLine("Enter Student' day of birth:\t"); dateOfBirth = DateTime.Parse(Console.ReadLine()); Console.Write("Enter Student' address:\t"); address = Console.ReadLine(); Console.Write("Enter Student' phone:\t"); phone = int.Parse(Console.ReadLine()); } public void Ouput() { Console.WriteLine("Name:\t" + name + "\nID:\t" + ID + "\nDay of Birth:\t" + dateOfBirth.ToShortDateString() + "\nAddress:\t" + address + "\nPhone:\t" + phone); } } }
Code:
using System; namespace _11520537 { class Program { static Students[] arrStudents = new Students[100]; const int n = 5; static void AddStudent() { for (int iCount = 0; iCount < n; iCount++) { arrStudents[iCount] = new Students(); arrStudents[iCount].Input(); } } static void OutputStudents() { for (int iCount = 0; iCount < n; iCount++) { arrStudents[iCount].Ouput(); } } static void Main(string[] args) { AddStudent(); OutputStudents(); Console.ReadLine(); } } }
Comment