C语言和C#语言都支持自定义函数。在C语言中,可以使用关键字
void
定义无返回值的函数,使用return
语句返回结果;而在C#语言中,可以使用public
、private
等修饰符定义访问权限,使用return type
指定返回类型。C语言和C#语言都是面向对象的编程语言,它们都支持自定义函数,下面分别介绍这两种语言中自定义函数的使用方法。
(图片来源网络,侵删)
C语言中的自定义函数
1、函数声明
在C语言中,自定义函数需要在主函数之前进行声明,函数声明的格式为:
返回类型 函数名(参数列表);
声明一个名为add
的函数,用于计算两个整数的和:
int add(int a, int b);
2、函数定义
函数定义需要放在主函数之后,实现具体的功能,函数定义的格式为:
返回类型 函数名(参数列表) { // 函数体 }
定义一个名为add
的函数,用于计算两个整数的和:
int add(int a, int b) { return a + b; }
3、函数调用
(图片来源网络,侵删)
在C语言中,可以通过函数名和参数列表来调用自定义函数,调用add
函数计算两个整数的和:
#include <stdio.h> int add(int a, int b); // 函数声明 int main() { int num1 = 3, num2 = 5; int sum = add(num1, num2); // 调用add函数 printf("The sum of %d and %d is %d ", num1, num2, sum); return 0; } int add(int a, int b) { // 函数定义 return a + b; }
C#语言中的自定义函数
1、函数声明和定义
在C#语言中,自定义函数需要在类中进行声明和定义,函数声明的格式为:
返回类型 函数名(参数列表);
声明一个名为Add
的函数,用于计算两个整数的和:
public int Add(int a, int b); // 函数声明
函数定义需要放在类中,实现具体的功能,函数定义的格式为:
返回类型 函数名(参数列表) { // 函数体 }
定义一个名为Add
的函数,用于计算两个整数的和:
public int Add(int a, int b) { // 函数定义 return a + b; }
2、函数调用
(图片来源网络,侵删)
在C#语言中,可以通过对象名、点操作符和函数名来调用自定义函数,调用Add
函数计算两个整数的和:
using System; class Program { static void Main() { int num1 = 3, num2 = 5; int sum = Program.Add(num1, num2); // 调用Add函数(静态方法)或通过对象实例调用(非静态方法)Program obj = new Program(); int sum = obj.Add(num1, num2); Console.WriteLine("The sum of {0} and {1} is {2}", num1, num2, sum); // 格式化输出字符串,{0}、{1}、{2}分别表示占位符,对应后面的变量值;使用Console.WriteLine时会自动将变量值插入到占位符位置;也可以使用string.Format方法进行格式化输出。
下面是一个简单的介绍,展示了C语言和C#语言中自定义函数的基础对比:
特性 | C语言 | C#语言 |
函数定义 | 使用void 或返回类型声明函数,不需要类或命名空间 | 需要定义在类或结构中,可以在命名空间内部 |
返回类型 | 可以是任意基本类型,结构体,指针 | 可以是任意类型,包括类类型,接口,枚举等 |
参数传递 | 值传递,指针传递 | 值传递,引用传递,输出参数,参数数组等 |
默认参数 | 不支持 | 支持 |
可变参数 | 使用宏va_list 实现 | 使用params 关键字 |
重载 | 不支持 | 支持,可以定义相同名称的多个方法,只要参数列表不同 |
引用传递 | 使用指针 | 使用ref 关键字 |
输出参数 | 不支持 | 使用out 关键字 |
异常处理 | 使用返回值和全局变量 | 使用try ,catch ,finally 块 |
命名空间 | 不支持 | 使用namespace 关键字定义命名空间 |
类和方法可见性 | 使用static 关键字控制全局函数的可见性 | 使用public ,private ,protected ,internal 等修饰符 |
泛型 | 不支持 | 使用T 作为类型参数定义泛型类和方法 |
请注意,C语言是一种过程式语言,而C#是一种面向对象的编程语言,因此在很多方面,它们的设计哲学和功能特性都有很大的不同,上表只展示了它们自定义函数的一些基本差异。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/691534.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复