📅  最后修改于: 2023-12-03 14:39:48.558000             🧑  作者: Mango
C#是一种多范式编程语言,支持面向对象、泛型和特性编程。函数是C#中最基础也是最重要的编程元素之一。在这篇文章中,我们将介绍C#中的函数列表,并提供相应的代码示例。
C#中的函数使用function
关键词声明,可以包含返回值、函数名称、参数等元素。
[访问修饰符] 返回值类型 函数名称([参数列表]) {
// 函数体
return [返回值];
}
其中,访问修饰符
可以是public
、private
、protected
或internal
,用来限制外部访问函数的权限。返回值类型
可以是任意类型,或者是void
表示返回空值。函数名称
为合法的标识符。参数列表
用逗号隔开多个参数,每个参数包含类型和名称。返回值
为函数执行结果,如果函数不返回任何结果,可以省略。
例如,下面是一个简单的函数示例,用来返回两个整数之和:
public int Add(int a, int b) {
int sum = a + b;
return sum;
}
C#支持函数重载,即在同一作用域中,可以有多个同名函数,但是参数列表必须不同。函数重载可以提高函数的灵活性和可重用性。
public int Add(int a, int b) {
int sum = a + b;
return sum;
}
public double Add(double a, double b) {
double sum = a + b;
return sum;
}
C#中的匿名函数是一种没有函数名称的函数,可以作为方法参数传递或赋值给委托变量。匿名函数通常用于事件处理或Lambda表达式中。
delegate int AddDelegate(int a, int b);
AddDelegate add = delegate(int a, int b) {
int sum = a + b;
return sum;
};
int result = add(1, 2); // 3
Lambda表达式是一种匿名函数的简写形式,可以缩短代码,提高可读性。Lambda表达式通常用于LINQ查询、LINQ to XML和事件处理。
List<int> numbers = new List<int>() { 1, 2, 3, 4, 5, 6 };
List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
C#中的扩展方法是一种静态方法,可以向已存在的类型添加新方法。扩展方法必须在非泛型、非嵌套的静态类中定义,且必须使用this
关键词指明要扩展的类型。
public static class StringExtensions {
public static bool IsEmail(this string value) {
if (string.IsNullOrEmpty(value)) {
return false;
}
return Regex.IsMatch(value, @"^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,}$");
}
}
string email = "example@example.com";
bool isEmail = email.IsEmail(); // true
C#中的函数可以使用try-catch-finally
结构来处理异常。当函数执行过程中出现异常,程序会跳转到相应的catch
块进行处理。finally
块中的代码总是会被执行,不管是否出现异常。
public int Divide(int a, int b) {
int result = 0;
try {
result = a / b;
}
catch (DivideByZeroException ex) {
Console.WriteLine(ex.Message);
}
finally {
Console.WriteLine("Finally block is executed.");
}
return result;
}
这是C#中的一些常用函数列表。在实际编程中,函数是一个非常重要的编程元素,可以提高代码的复用性、可维护性和可读性。希望这篇文章对你有所启发。