// 其构造函数具有一个名为“name”的字符串参数,表达式主体定义向 Name 属性分配参数public class Location{private string locationName;public Location(string name) => Name = name;public string Name{get => locationName;set => locationName = value;}}
终结器的表达式主体定义通常包含清理语句,例如释放非托管资源的语句 。
// 定义一个终结器,该终结器使用表达式主体定义来指示已调用该终结器public class Destroyer{public override string ToString() => GetType().Name;~Destroyer() => Console.WriteLine($"The {ToString()} finalizer is executing.");}
索引器与使用属性一样,如果 get
访问器包含返回值的单个表达式或 set
访问器执行简单的赋值,则索引器 get
和 set
访问器包含表达式主体定义 。
using System;using System.Collections.Generic;// 其中包含一个内部 String 数组,该数组包含大量体育运动的名称// 索引器的 get 和 set 访问器都以表达式主体定义的形式实现public class Sports{private string[] types = { "Baseball", "Basketball", "Football","Hockey", "Soccer", "Tennis","Volleyball" };public string this[int i]{get => types[i];set => types[i] = value;}}
八、ref 局部变量在变量类型之前添加 ref
关键字以声明 ref
局部变量 。
public ref Person GetContactInformation(string fname, string lname)// 对 p 进行的操作不会改变原方法的返回值Person p = contacts.GetContactInformation("Brandie", "Best");
上面的分配将 p
声明为本地变量 。它的初始值是通过读取 GetContactInformation
返回的值进行复制 。之后对 p
的任何分配都不会更改 GetContactInformation
返回的变量值 。变量 p
不再是返回的变量的别名 。
声明引用本地变量,复制原始值的别名 。在下面的分配中,p
是从 GetContactInformation
返回的变量的别名 。
// 对 p 所做的更改,也会更改从 GetContactInformation 返回的变量ref Person p = ref contacts.GetContactInformation("Brandie", "Best");
后续使用 p
等同于使用 GetContactInformation
返回的变量,因为 p
是此变量的别名 。
可通过相同方式按引用访问值 。在某些情况下,按引用访问值可避免潜在的高开销复制操作,从而提高性能 。
编译器对ref
变量强制实施范围规则:ref
类型中的ref struct
局部变量、ref
参数和ref
字段 。这些规则可确保引用不会与引用的对象不相称 。
九、引用返回返回值可以通过引用返回 (ref
返回)。借助引用返回值,方法可以将对变量的引用(而不是值)返回给调用方 。然后,调用方可以选择将返回的变量视为按值返回或按引用返回 。
如果声明方法返回引用返回值,表明方法返回变量别名 。这样做通常是为了让调用代码有权通过别名访问此变量(包括修改它) 。因此,方法的引用返回值不得包含返回类型 void
。
引用返回值是指,方法返回对某变量的引用(或别名) 。
返回引用返回值的方法必须满足以下两个条件:
??1)方法签名在返回类型前面有ref
关键字;
??2)方法主体中的每个 return
语句都在返回实例的名称前面有 ref 关键字 。
public ref Person GetContactInformation(string fname, string lname){return ref p;}
经验总结扩展阅读
- AgileBoot - 如何集成内置数据库H2和内置Redis
- 为什么台北和香港可以参加奥运会
- 和平精英撕心裂肺心碎绝望的文案 彼此不再联系的句子
- 两个6寸蛋糕和一个8寸哪个大
- 送礼送3000和5000区别
- 总是会把感动和爱情搞混的星座
- 粘米粉是什么粉和糯米粉的区别
- 沙俄和俄罗斯的区别
- 和爱人同居时,最容易被嫌弃的星座是哪些
- 和这些星座恋爱,什么事都要自己主动