没有合适的资源?快使用搜索试试~ 我知道了~
理解C#中参数的值和引用以及传递结构和类引用的区别
0 下载量 166 浏览量
2020-12-25
21:25:23
上传
评论
收藏 42KB PDF 举报
温馨提示
试读
2页
值与引用参数之间的区别: 在 C# 中,既可以通过值也可以通过引用传递参数。在调用环境中通过引用传递参数允许函数成员(方法、属性、索引器、运算符和构造函数)更改参数的值,并保持该更改。若要通过引用传递参数,请使用 ref 或 out 关键字。 下面的示例阐释值与引用参数之间的区别: class Program { static void Main(string[] args) { int arg; // Passing by value. // The value of arg in Main is not changed. arg = 4;
资源详情
资源评论
资源推荐
理解理解C#中参数的值和引用以及传递结构和类引用的区别中参数的值和引用以及传递结构和类引用的区别
值与引用参数之间的区别:值与引用参数之间的区别:
在 C# 中,既可以通过值也可以通过引用传递参数。在调用环境中通过引用传递参数允许函数成员(方法、属性、索引器、运
算符和构造函数)更改参数的值,并保持该更改。若要通过引用传递参数,请使用 ref 或 out 关键字。
下面的示例阐释值与引用参数之间的区别:
class Program
{
static void Main(string[] args)
{
int arg;
// Passing by value.
// The value of arg in Main is not changed.
arg = 4;
squareVal(arg);
Console.WriteLine(arg);
// Output: 4
// Passing by reference.
// The value of arg in Main is changed.
arg = 4;
squareRef(ref arg);
Console.WriteLine(arg);
// Output: 16
}
static void squareVal(int valParameter)
{
valParameter *= valParameter;
}
// Passing by reference
static void squareRef(ref int refParameter)
{
refParameter *= refParameter;
}
}
向方法传递结构和向方法传递类引用之间的区别向方法传递结构和向方法传递类引用之间的区别
下面的示例演示如何使用 结构 到方法与通过 类 实例不同传递给方法。在此示例中,两个参数 (结构和类实例) 将值和两个方
法通过更改参数的一个字段的值。但是,这两个方法的结果是不同的,因为的传递,当您通过时结构什么不同通过,则可以通
过类的实例。
由于结构是 值类型,那么,当您对方法的 使用结构值 ,方法受到并对结构参数的副本。方法无法访问原始结构中调用方法并
不能将其更改任何方式。该方法可以仅更改副本。
类的实例是 引用类型,而不是值类型。当对方法的 引用类型通过值 ,方法进行引用的复制到类实例。即方法受到实例,而不
是复制实例的地址的副本。在调用方法的类实例都有一个地址,在调用方法的参数的地址的副本,因此,两个地址是否引用同
一对象。由于该参数包含该地址的副本,调用方法不能更改类实例的地址在调用方法的。但是,调用方法可以使用该地址访问
原始地址和该副本引用的类成员。如果调用方法将类成员,在调用方法的原始类的实例也会发生更改。
下面的示例的输出显示差异。,因为该方法在参数中使用该地址查找类的实例,的指定字段调用将类实例的 willIChange 字段
的值传递给方法 ClassTaker 。调用不更改结构的 willIChange 字段在调用方法为方法 StructTaker ,因为参数的值是结构的副
本,而不是复制其地址。 StructTaker 更改该副本,因此,该副本丢失,在向 StructTaker 调用完成时。
class TheClass
{
public string willIChange;
}
struct TheStruct
{
public string willIChange;
}
class TestClassAndStruct
{
static void ClassTaker(TheClass c)
{
weixin_38557838
- 粉丝: 2
- 资源: 898
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0