[英]call array function from a class to main class
我正在嘗試編寫一個程序,讓用戶選擇一些學生,然后讓他輸入他們的畢業生。 這樣我將創建public int numberOfStu=0
來存儲學生的數量和public double [] grad
以將成績保存在名為grade
的 class 中。 我有兩個問題:1-我不能使grad
的長度與numberOfStu
的值相同這是我的代碼:
class grade
{
public int numberOfStu=0 ;
double[] grad = new double [numberOfStu]; // here is error
public grade()
{ }
public grade(int numStu, double [] Grads){
numberOfStu = numStu;
grad = Grads;
}
public int number() {
Console.Write("enter number of student:");
return numberOfStu = Int16.Parse(Console.ReadLine());
}
public double [] Gread(int numberOfStu) {
for (int i=0 ; i< numberOfStu; i++) {
grad[i] = double.Parse(Console.ReadLine());
}
return grad;
}
public void print()
{
Console.WriteLine("Number of students are {0}", numberOfStu);
for (int i = 0; i < numberOfStu; i++) {
Console.WriteLine("Gread of studen {0} is {1}", i + 1, Gread[i]);
}
}
}
2-我不知道如何在主 class 中調用Gread
function 扔它數組 function。 這是主要代碼:
static void Main(string[] args)
{
grade gread1 = new grade();
gread1.number();
gread1.Grad(gread1.number()); //here is error
gread1.print();
}
您可以嘗試對此進行一些重構:
public class Grades
{
private double[] _Items;
public int Count
{
get
{
return _Items.Length;
}
}
public Grades()
{
}
public Grades(double[] grades)
{
_Items = grades;
}
public int Resize()
{
Console.Write("Enter number of students:");
int.TryParse(Console.ReadLine(), out int count);
if ( _Items == null )
_Items = new double[count];
else
Array.Resize(ref _Items, count);
return Count;
}
public double[] Initialize(int count)
{
if ( _Items == null )
_Items = new double[count];
else
Array.Resize(ref _Items, count);
for ( int i = 0; i < _Items.Length; i++ )
{
Console.WriteLine("Enter grade of student {0}:", i + 1);
double.TryParse(Console.ReadLine(), out _Items[i]);
}
return _Items;
}
public void Print()
{
if ( _Items == null )
Console.WriteLine("There is no students.");
else
{
Console.WriteLine("Number of students are {0}", _Items.Length);
for ( int i = 0; i < _Items.Length; i++ )
Console.WriteLine("Grade of student {0} is {1}", i + 1, _Items[i]);
}
}
}
static void Test()
{
var g = new Grades();
g.Initialize(5);
g.Print();
}
結果:
Enter grade of student 1:
1
Enter grade of student 2:
2
Enter grade of student 3:
3
Enter grade of student 4:
4
Enter grade of student 5:
5
Number of students are 5
Grade of student 1 is 1
Grade of student 2 is 2
Grade of student 3 is 3
Grade of student 4 is 4
Grade of student 5 is 5
您可以將Grades
重命名為Students
並將_Items
重命名為_Grades
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.