C#方法返回值
一、必背核心知识点必考直接背结合代码1. 方法返回值基础定义返回值方法执行完成后返回给调用者的“结果”用于在方法外部使用方法的执行结果区别于无返回值仅在方法内部输出。返回值的两种类型无返回值void、有返回值具体类型int、string、自定义对象等。核心语法方法定义时用“返回值类型”替代void有返回值无返回值固定写void且必须遵循语法规则。2. 无返回值方法void基础重点定义方法返回值类型写void表示方法无任何返回结果仅执行方法体内的逻辑如打印、循环等。语法要求无返回值方法不能写return若写return需不带任何值如return;仅用于跳出方法无实际意义。调用规则直接调用无需用变量接收用变量接收会报错对应代码Test1(10, 20);仅执行打印不返回结果。核心结论无返回值方法的结果只能在方法内部使用如打印无法拿到方法外部复用。3. 有返回值方法重点必考定义将void替换为具体的返回值类型如int、Student、string表示方法执行后会返回一个该类型的结果。核心语法必默写必须写return关键字return后面的“值/对象”数据类型必须和方法的返回值类型完全一致否则报错。return的双重作用① 返回方法执行结果② 直接跳出方法体return后面的代码不会执行。调用规则必须用“对应类型的变量”接收返回值或直接用于打印、计算对应代码值类型返回值int s1 Test2(99, 99);接收int类型结果对象类型返回值Student zs Test3(张三);接收Student对象4. 不同类型返回值的重点要求结合代码易错值类型返回值int、double等return后面直接跟对应类型的常量、变量或计算结果如return sum; sum是int类型。对象类型返回值自定义类如Student、People必须先通过new关键字创建对象如Student zhangsan new Student();否则会报“空引用错误”。return后面跟创建好的对象如return zhangsan;调用者接收后可通过“对象.属性”使用对象内容如zs.Name。5. 终极简化总结直接默写考试高频无返回值void 不写return 直接调用结果仅内部使用。有返回值具体类型 必须写return类型一致 用对应变量接收。对象返回值必须new对象否则空引用报错值返回值直接return对应类型结果。二、高频易错点避坑专用必记对应代码报错场景易错1有返回值方法忘记写return → 语法报错编译不通过。易错2return后面的值/对象类型与方法返回值类型不一致如方法返回intreturn abc→ 报错。易错3无返回值方法写return且带值如void Test1() { return 10; }→ 报错仅能写return;无实际意义可省略。易错4调用有返回值方法时不接收返回值仅写Test2(99,99);→ 语法不报错但返回值被丢弃无实际意义浪费方法逻辑。易错5返回对象类型时忘记new对象如Student zhangsan; 直接return zhangsan;→ 空引用报错未将对象引用设置到对象的实例。易错6方法命名不规范如test2、testMax→ 不符合C#大驼峰命名规则正确Test2、Max虽不报错但考试/开发需规避。易错7混淆“无返回值”和“返回null”→ void是无返回值不能return null只有引用类型返回值如Student才能return null。补充说明所有知识点、易错点均对应之前的“方法返回值”代码如Test1、Test2、Test3、Max方法记忆时可结合代码片段重点突破“对象返回值需new”“return类型一致”两个核心易错点考试高频考查。一、命名空间与类的基础必记核心所有方法、类都要放在命名空间内Program类是程序入口Student是自定义类用于返回对象。代码小段 1命名空间与Program类定义namespace _3方法返回值 { internal class Program { static void Main(string[] args) { // 主方法程序的入口所有方法调用都在这里写 } } }✅ 必记知识点namespace命名空间用来区分不同的代码模块避免类名、方法名冲突这里命名为“_3方法返回值”对应“方法返回值”知识点。internal class ProgramProgram类是程序的核心类主方法Main必须放在这个类里。static void Main(string[] args)主方法程序运行时最先执行的代码所有方法的调用都要写在这个方法体内。二、无返回值方法void—— Test1方法代码小段 2主方法中调用Test1static void Main(string[] args) { //调用不带返回值的Test1方法只能在方法体里面打印和的值不能把30拿到方法体外进行使用 Test1(10, 20); }✅ 必记知识点Test1是“无返回值方法”调用时直接写方法名实参不需要用变量接收结果。注释重点无返回值方法的结果比如这里的102030只能在方法内部打印无法拿到方法外部使用。代码小段 3Test1方法定义// 定义计算俩个数字相加的方法 public static void Test1(int a,int b) { int sum a b; Console.WriteLine(sum); }✅ 必记知识点核心无返回值方法的定义用void表示“无返回值”后面不需要写return写了会报错。方法格式public static 返回值类型void 方法名Test1 形参列表int a, int b 方法体。形参a、b接收调用时传入的实参10和20计算后在方法内部打印sum30外部无法直接获取sum。❌ 易错点无返回值方法不能用变量接收比如写“int res Test1(10,20);”会直接报错。三、有返回值方法int类型—— Test2方法代码小段 4主方法中调用Test2static void Main(string[] args) { //调用带返回值的方法Test2 int s1 Test2(99, 99); Console.WriteLine(s1); }✅ 必记知识点有返回值方法这里返回int类型调用时必须用相同类型的变量接收比如int s1。Test2(99,99)传入两个实参99方法计算后返回结果赋值给s1再通过Console.WriteLine打印s1结果198。代码小段 5Test2方法定义// 有返回值的方法的定义方式把void 改成返回值的类型 // 有返回值的方法一定要添加return关键字 return 后面数据类型一定和返回值类型保持一致 // 计算数字和 返回值类型可以写成int public static int Test2(int a,int b) { int sum a b; return sum; // return返回 得到 跳出方法体, return类型给方法返回值类型保持一致 }✅ 必记知识点核心必考有返回值方法的定义把void换成具体的返回值类型这里是int表示方法最终会返回一个int类型的值。必须写returnreturn后面的值sum数据类型必须和方法的返回值类型int完全一致否则报错。return的两个作用① 返回计算结果sum② 跳出方法体return后面如果有代码不会执行。❌ 易错点有返回值方法忘记写return → 报错return后面的值类型和方法返回值类型不匹配比如return abc→ 报错调用有返回值方法时不接收返回值只写Test2(99,99);语法不报错但返回值会被丢弃没有意义。四、有返回值方法对象类型—— Test3方法代码小段 6自定义Student类必记public class Student { public string Name { get; set; } }✅ 必记知识点Student是自定义类用来创建“学生对象”包含一个属性Name存储学生姓名。public string Name { get; set; }自动属性用来赋值和获取学生的姓名后续Test3方法会给这个属性赋值。代码小段 7主方法中调用Test3static void Main(string[] args) { // 调用返回值为对象类型的Test3方法 Student zs Test3(张三); Console.WriteLine(zs.Name); }✅ 必记知识点Test3方法的返回值类型是“Student”自定义对象类型所以调用时必须用Student类型的变量zs接收。Test3(张三)传入实参“张三”方法返回一个Student对象赋值给zs再通过zs.Name获取对象的属性值打印“张三”。代码小段 8Test3方法定义//返回值是一个对象 并且是一个学生对象 //返回值类型为Student 传递参数字符串类型 // 要求把参数赋值给对象的属性上 public static Student Test3(string n) //n值张三 { //1先定义一个Student类型的数据就是Student对象 Student zhangsan new Student(); // 对象为空的化 报未将对象引用设置到对象的实例。 对象没new的原因 zhangsan.Name n; return zhangsan; }✅ 必记知识点核心易错返回对象类型的方法返回值类型写“自定义类名”这里是Studentreturn后面必须返回一个该类的对象。必须new对象Student zhangsan new Student(); → 不写newzhangsan就是空对象null会报“未将对象引用设置到对象的实例”错误注释重点必记。赋值逻辑将传入的实参n“张三”赋值给Student对象的Name属性再将这个对象返回。❌ 易错点忘记new Student()直接写“Student zhangsan;”再给zhangsan.Name赋值 → 报错空引用。五、有返回值方法逻辑计算—— Max方法代码小段 9主方法中调用Maxstatic void Main(string[] args) { //调用Max方法 Console.WriteLine(Max(1,1,9)); }✅ 必记知识点有返回值方法的另一种调用方式不单独用变量接收直接将方法调用写在Console.WriteLine()里直接打印返回值结果9。Max(1,1,9)传入三个实参方法计算后返回最大值直接打印。代码小段 10Max方法定义//7. 定义一个函数输入三个值,找出三个数中的最大值 public static int Max(int a,int b, int c) { int max 0; int temp a; temp a b ? b : a;// temp 是 a,b中最大值 max temp c ? c : temp; //temp 和c 之间的最大值 return max; }✅ 必记知识点方法功能接收三个int类型的形参通过三元运算符找出最大值返回最大值int类型。三元运算符逻辑必懂temp a b ? b : a; → 如果a小于等于btemp就等于b否则等于a得到a和b的最大值。max temp c ? c : temp; → 用a、b的最大值temp和c比较得到三个数的最大值赋值给max。return max; → 将最终的最大值返回调用时可接收或直接打印。❌ 易错点三元运算符的逻辑不要搞反比如把a b写成a b会导致计算出最小值。六、整体必背总结必考、必记1. 方法返回值核心void无返回值无return有返回值必须写return且return值类型和方法返回值类型一致2. 调用规则无返回值直接调用有返回值需用对应类型变量接收或直接打印3. 返回对象必须new对象否则空引用报错4. 形参实参个数、类型、顺序必须完全一致5. 方法命名大驼峰Test1、Test2、Max符合C#规范。