C#方法,返回
所以基本上我刚开始学习C#昨天我有机会学习了一些方法,我有点困惑返回值是如何有用的,或者它们的作用是什么,我知道在一个包含void作为关键字的方法中不能有返回值,我知道void的意思是“不做任何事情或不返回任何东西”差不多吧 很清楚,空虚意味着这一点C#方法,返回,c#,C#,所以基本上我刚开始学习C#昨天我有机会学习了一些方法,我有点困惑返回值是如何有用的,或者它们的作用是什么,我知道在一个包含void作为关键字的方法中不能有返回值,我知道void的意思是“不做任何事情或不返回任何东西”差不多吧 很清楚,空虚意味着这一点 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespa
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
Add(2,2);
}
static int Add(int numberOne, int numberTwo)
{
Console.WriteLine(numberOne + numberTwo);
return numberOne + numberTwo;
}
}
}
“returnnumberOne+numberTwo”在这段代码中有什么用处,我有点卡住了,我有一个思维障碍,为什么我需要返回当我运行此代码时,我得到了一些信息(4)
为什么在这段代码中我也得到了一些东西(“我在一个方法中,做了一些很棒的事情!”),并且我没有在最后使用关键字return,我不知道我是否解释得足够好(抱歉,如果我不知道英语不是我的第一语言)但我只需要一个基本的、很好的解释,说明收益是如何有用的,它们的用途是什么,何时使用它们,何时不使用它们
感谢您……调用该方法:
DoSomethingAwesome();
在主程序中
,结果是写下以下句子:
"I'm inside of a method, doing something awesome!"
因为DoSomethingAwesome
方法将此值打印到控制台,即使它不返回任何值(它是void
方法)
该方法执行此操作,而不考虑它不返回值的事实,因为您调用了它。如果要将其值用作返回字符串,则应如下所示:
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("I'm about to go into a method.");
string result = DoSomethingAwesome();
Console.WriteLine("I'm back from the method.");
}
static string DoSomethingAwesome()
{
return "I'm inside of a method, doing something awesome!";
}
}
方法的返回类型声明调用方应该期望的内容。当使用
void
返回类型声明一个方法时,这意味着不会从中返回任何内容,因此您不需要使用void
方法中的return
语句(因为您不返回任何内容)
在以下情况下,您有:
static int Add(int numberOne, int numberTwo)
{
Console.WriteLine(numberOne + numberTwo);
return numberOne + numberTwo;
}
这意味着方法Add
向调用它的人返回一个整数
从主函数调用:
Add(2,2);
这意味着您正在调用函数,但没有对结果执行任何操作(只是将其丢弃)。相反,要:
int result = Add(2, 2);
返回的整数(本例中为4)存储在结果中,因此您可以执行以下操作:
Console.WriteLine("The method returned {0}", result);
方法需要返回以从中获取数据。
在int c=a+b
的情况下,您可以像您的方法静态int-Add(int-a,int-b)
一样考虑这个问题,它将被写成int c=Add(a,b)
为了从方法中获取新值,该方法需要能够向调用者返回一个值,在这种情况下,调用者将被分配到c
这些方法的全部目的是分离出代码中经常使用的部分,或者将大块代码分割成更小、更容易理解的块
我建议看一下。这里的问题非常基本,而且不仅仅与C有关,事实上几乎每种编程语言都在方法中使用return
基本上表示您希望退出方法执行。现在,当您有一个void
方法时,该方法不会从执行中返回值。除了void之外,方法还可以返回所需的任何类型
下面是一个基本示例void
方法
class Program
{
static void Main()
{
Calculate(1 , 2);
}
static int c = 0;
static void Calculate(int a, int b)
{
c = a + b;
}
}
现在,在我的Calculate
方法中,我将字段c
的值设置为a+b
之和。这是基本的,但是void方法不是返回值而是修改值(c
)
这可以写成:
class Program
{
static void Main()
{
c = Calculate(1 , 2);
}
static int c = 0;
static int Calculate(int a, int b)
{
return a + b;
}
}
哪里会注意到我的Calculate
方法现在返回一个int
,它是a+b
的总和。这将从调用方法分配给c
现在为什么要使用这两种情况。在第一个例子中,方法Calculate()
知道哪个变量应该保存该方法的结果。因此,它将c
设置为总和。在第二个示例中,Calculate
方法仅返回a+b
之和
现在转到一个更复杂的例子。假设我们构建了一个计算器类,其职责是管理计算
class Calculator
{
int sum = 0;
public void Add(int a)
{
sum += a;
}
public void Subtract(int a)
{
sum -= a;
}
public int GetTotal()
{
return sum;
}
}
可用于:
static void Main()
{
var calculator = new Calculator();
calculator.Add(5);
calculator.Subtract(10);
int total = calculator.GetTotal();
}
同样基本,但现在我们有3种方法<代码>添加
,减去
和获取总计
。Add
和Subtract
都是无效方法,因为它们在sum
字段上执行操作。其中,GetTotal
是return
ing总和
希望这能有所帮助。IMO,当我想修改方法上下文中的内容时,我基本上使用返回类型的方法,然后只返回输出,当我想设置其他地方可以访问的内容(全局变量等)时无效@oneWhisper。。。埃德·黑斯廷斯()如果你阅读的话会很有帮助。如果有一天你不是新手,如果你创建了另一种语言,也许你可以省略
return
表达式?
static void Main()
{
var calculator = new Calculator();
calculator.Add(5);
calculator.Subtract(10);
int total = calculator.GetTotal();
}