如何创建一个输出整数的 void 方法,并让该方法将传递给它的数据除以 2?
How to create a void method that outputs an integer and have the method divide the data passed to it by 2?
我在这方面真的很陌生,而且还在学习 C#。我很难为我正在处理的作业寻找一个好的例子。
所以你可以准确地看到我被问到的问题,这是我的作业的逐字文本:
Perform these actions and create a console app that includes the
following:
- Create a class. In that class, create a void method that outputs an integer. Have the method divide the data passed to it by 2.
- In the Main() method, instantiate that class.
- Have the user enter a number. Call the method on that number. Display the output to the screen. It should be the entered number, divided by two.
- Create a method with output parameters.
- Overload a method.
- Declare a class to be static.
到目前为止,我创建了一个 class。在 Main() 方法中,实例化 class。如果答案在这里,我提前道歉。如果是,请指出方向。谢谢。
在我的 main() 程序中:
class Program
{
static void Main(string[] args)
{
MathMethod mathMethod = new MathMethod(); //Instantiate
}
}
我的MathMethod.cs:
class MathMethod
{
public void Operator()
{
int num1 = 6;
int num2 = 9;
}
public void Output(int number1, int number2)
{
int value =
}
如果您需要 return 来自方法的值,您可以:
- 使用return种类(在您的分配中被禁止)
- 使用 ref / out 参数(例如,允许在不使用元组的情况下 returning 多个值)。
示例(未经测试编写!):
// out - means that parameter will be passed out of method
public void Output(int number1, int number2, out int result)
{
result = number1 + number2;
}
public void AddNumbers()
{
int ret; // Need to define variable to hold the result
Output(2, 5, out ret); // Actual call. Note the out keyword
Console.WriteLine("2 + 5 = " + ret);
}
我不会做你的作业,但我很乐意为你提供指导,让你assemble成为你作业的解决方案
作业文本包含一些令人困惑的措辞。我会说“在那个数字上调用方法”应该读作“调用方法,传递那个数字”——在“on”上调用方法是不同的,有点暗示你应该写一个扩展方法(我不敢相信这是这个级别作业的要求)
它还会问你一些我不确定我会问一个新学习者的事情,但是嘿嘿,我们就在这里
在大多数情况下,我会说 Piotr 已经回答了您的特定问题;他们的回答增加了而不是你的要求,但我相信你可以解决这个问题。此外,他们的答案将两个操作数都用于操作,但您的作业要求您创建一个只接受一个数字的方法,并将其减半,这样您的方法就不会像 Piotr 那样有 3 个参数,它将有 2
In the Main() method, instantiate that class.
完成
Have the user enter a number.
使用 Console.WriteLine
提示用户做某事,然后使用 Console.ReadLine
将他们的输入读入字符串变量
您还需要将字符串转换为 int;看看int.Parse
哪个好用
您可以考虑稍后升级到 int.TryParse
,这是一个更强大的选项,如果用户输入无法解释为数字的垃圾,它不会崩溃。 Amusingly/interestingly,TryParse 的工作方式与您的作业要求您的方式相同;它使用 out 参数使解析后的数字可用。它使用 out
的原因是因为它也是 return 一个指示成功与否的布尔值,因此您可以采取相应的行动;这是 out
的一个比你的作业要求你考虑的更有效的用例,因为 TryParse 确实需要 return 两件事(它是否成功的 bool 和它解析的值)成功)。您的要求比较人为,为了学术点而使用out
;请不要忘记 out
是经常使用的好东西。它(和它的兄弟 ref
)是可怕的东西,我们尽量减少使用。
完成此作业后,在您完全了解其含义之前,尽量避免再次使用 out
;一旦新手开始思考“这就是我 return 从一个方法中获取多个东西的方式”,他们就会开始到处放置 out
。不; “一个方法只能 return 一件事”是完全可以使用的,你只需将一件事变成一个方法就可以 return 一个包含你想要的多个东西的对象return 然后 return 该对象之一。毕竟这是面向对象的编程!
我使用 out
所以我很少不记得过去 10 年编码中的特定用例,除了关于 SO 的学术人为示例外,还恳请人们不要使用它
Call the method on that number.
表示调用方法,将解析后的数字作为参数传递
Display the output to the screen.
Piotr 展示了这一点
Create a method with output parameters.
这似乎是关于如何完成第 2 步的提示;当你到达这里时你已经完成了这个
Overload a method.
重载是在同一个 class 中提供两个或多个方法,它们的名称相同。编译器根据它在参数
中发现的一些差异来选择使用哪一个
这是一组重载的示例:
void Halve(int number, out int result)
void Halve(int number, int howManyTimes, out int result)
void Halve(double number, out double result)
重载可以因参数数量、参数类型或两者而异。顺便说一下,上面的前两个是我可能会推荐给你的作业;提供一个仅除以 2 一次的方法 Halve,然后提供另一个方法,该方法需要一个额外的数字,即除法的次数。
对于额外的样式点,您可以让仅划分一次的 Halve 调用划分 N 次的方法,为 N 参数传递 1
Declare a class to be static.
噢,我真希望教育工作者不要提倡静态。这实在是太让人头疼了,因为它毁掉了我们试图让您根据同一类型对象的多个实例来思考的所有好工作。这也让我对前面提到的扩展方法更加好奇
我会通过制作程序 class 将您的 Main 方法保存为 static
来“绕过”这个
我在这方面真的很陌生,而且还在学习 C#。我很难为我正在处理的作业寻找一个好的例子。
所以你可以准确地看到我被问到的问题,这是我的作业的逐字文本:
Perform these actions and create a console app that includes the following:
- Create a class. In that class, create a void method that outputs an integer. Have the method divide the data passed to it by 2.
- In the Main() method, instantiate that class.
- Have the user enter a number. Call the method on that number. Display the output to the screen. It should be the entered number, divided by two.
- Create a method with output parameters.
- Overload a method.
- Declare a class to be static.
到目前为止,我创建了一个 class。在 Main() 方法中,实例化 class。如果答案在这里,我提前道歉。如果是,请指出方向。谢谢。
在我的 main() 程序中:
class Program
{
static void Main(string[] args)
{
MathMethod mathMethod = new MathMethod(); //Instantiate
}
}
我的MathMethod.cs:
class MathMethod
{
public void Operator()
{
int num1 = 6;
int num2 = 9;
}
public void Output(int number1, int number2)
{
int value =
}
如果您需要 return 来自方法的值,您可以:
- 使用return种类(在您的分配中被禁止)
- 使用 ref / out 参数(例如,允许在不使用元组的情况下 returning 多个值)。
示例(未经测试编写!):
// out - means that parameter will be passed out of method
public void Output(int number1, int number2, out int result)
{
result = number1 + number2;
}
public void AddNumbers()
{
int ret; // Need to define variable to hold the result
Output(2, 5, out ret); // Actual call. Note the out keyword
Console.WriteLine("2 + 5 = " + ret);
}
我不会做你的作业,但我很乐意为你提供指导,让你assemble成为你作业的解决方案
作业文本包含一些令人困惑的措辞。我会说“在那个数字上调用方法”应该读作“调用方法,传递那个数字”——在“on”上调用方法是不同的,有点暗示你应该写一个扩展方法(我不敢相信这是这个级别作业的要求)
它还会问你一些我不确定我会问一个新学习者的事情,但是嘿嘿,我们就在这里
在大多数情况下,我会说 Piotr 已经回答了您的特定问题;他们的回答增加了而不是你的要求,但我相信你可以解决这个问题。此外,他们的答案将两个操作数都用于操作,但您的作业要求您创建一个只接受一个数字的方法,并将其减半,这样您的方法就不会像 Piotr 那样有 3 个参数,它将有 2
In the Main() method, instantiate that class.
完成
Have the user enter a number.
使用 Console.WriteLine
提示用户做某事,然后使用 Console.ReadLine
将他们的输入读入字符串变量
您还需要将字符串转换为 int;看看int.Parse
哪个好用
您可以考虑稍后升级到 int.TryParse
,这是一个更强大的选项,如果用户输入无法解释为数字的垃圾,它不会崩溃。 Amusingly/interestingly,TryParse 的工作方式与您的作业要求您的方式相同;它使用 out 参数使解析后的数字可用。它使用 out
的原因是因为它也是 return 一个指示成功与否的布尔值,因此您可以采取相应的行动;这是 out
的一个比你的作业要求你考虑的更有效的用例,因为 TryParse 确实需要 return 两件事(它是否成功的 bool 和它解析的值)成功)。您的要求比较人为,为了学术点而使用out
;请不要忘记 out
是经常使用的好东西。它(和它的兄弟 ref
)是可怕的东西,我们尽量减少使用。
完成此作业后,在您完全了解其含义之前,尽量避免再次使用 out
;一旦新手开始思考“这就是我 return 从一个方法中获取多个东西的方式”,他们就会开始到处放置 out
。不; “一个方法只能 return 一件事”是完全可以使用的,你只需将一件事变成一个方法就可以 return 一个包含你想要的多个东西的对象return 然后 return 该对象之一。毕竟这是面向对象的编程!
我使用 out
所以我很少不记得过去 10 年编码中的特定用例,除了关于 SO 的学术人为示例外,还恳请人们不要使用它
Call the method on that number.
表示调用方法,将解析后的数字作为参数传递
Display the output to the screen.
Piotr 展示了这一点
Create a method with output parameters.
这似乎是关于如何完成第 2 步的提示;当你到达这里时你已经完成了这个
Overload a method.
重载是在同一个 class 中提供两个或多个方法,它们的名称相同。编译器根据它在参数
中发现的一些差异来选择使用哪一个这是一组重载的示例:
void Halve(int number, out int result)
void Halve(int number, int howManyTimes, out int result)
void Halve(double number, out double result)
重载可以因参数数量、参数类型或两者而异。顺便说一下,上面的前两个是我可能会推荐给你的作业;提供一个仅除以 2 一次的方法 Halve,然后提供另一个方法,该方法需要一个额外的数字,即除法的次数。
对于额外的样式点,您可以让仅划分一次的 Halve 调用划分 N 次的方法,为 N 参数传递 1
Declare a class to be static.
噢,我真希望教育工作者不要提倡静态。这实在是太让人头疼了,因为它毁掉了我们试图让您根据同一类型对象的多个实例来思考的所有好工作。这也让我对前面提到的扩展方法更加好奇
我会通过制作程序 class 将您的 Main 方法保存为 static