gpt4 book ai didi

c# - 如何将我的一些代码更改为类?

转载 作者:行者123 更新时间:2023-11-30 17:26:57 25 4
gpt4 key购买 nike

我写了一些代码并且它可以工作,但现在尝试使用我的一些代码并将其更改为一个类。我已经将部分代码更改为首先是一个方法,然后将其变成一个类。但是代码的最后一部分无法弄清楚如何更改为一个方法,以便我可以创建一个类。

else if (input == "3")
{
Console.WriteLine("Here are your Students: ");
Array.Sort(names);
Console.WriteLine(String.Join(", ", names));
Console.WriteLine("");

double average = gradesList.Average();

if (average >= 90)
{
Console.WriteLine($"There average is a {average.ToString("n2")} which is an A.");

}
else if (average >= 80)
{
Console.WriteLine($"There average is a {average.ToString("n2")} which is an B.");
}
else if (average >= 70)
{
Console.WriteLine($"There average is a {average.ToString("n2")} which is an C.");
}
else if (average >= 60)
{
Console.WriteLine($"There average is a {average.ToString("n2")} which is an D.");
}
else
{
Console.WriteLine($"There average is a {average.ToString("n2")} which is an E.");
}

}

我想离开第一部分,只是将成绩部分改为类(class)。我试过 public static string GetLetterGrade(int average) return ($"There average is a {average.ToString("n2")} which is an A.") 但得到各种我不理解的错误。

最佳答案

我会让成绩成为一个不可改变的结构。它代表一个值,应该是一个值类型。类是引用类型。

public readonly struct Grade
{
public Grade(double percentage)
{
Percentage = percentage;
}

public double Percentage { get; }

public char Letter
{
get {
if (Percentage >= 90) return 'A';
if (Percentage >= 80) return 'B';
if (Percentage >= 70) return 'C';
if (Percentage >= 60) return 'D';
return 'E';
}
}

public override string ToString() => $"{Percentage:n2} ({Letter})";
}

因为 if 语句返回,所以没有必要有 else 部分。

然后您可以轻松打印消息

double average = gradesList.Average();
var grade = new Grade(average);
Console.WriteLine(
$"There average is a {grade.Percentage:n2} which is an {grade.Letter}.");

请注意,因为 ToString 被覆盖,所以您可以直接打印成绩。

Console.WriteLine($"The average grade is {grade}");

它将打印类似The average grade is 74.25 (C)的内容。

关于c# - 如何将我的一些代码更改为类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55668737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com