2 qq342947998 qq342947998 于 2016.04.13 16:17 提问

关于c#引用类型的问题,进入方法赋值后还是null
c#

图片说明
p和p1的地址不是应该一样吗,为什么还是null

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.13 16:21

你在函数内改变p,不会作用在实参p上。所以p还是null,非要这么写,必须用ref修饰
static void Test(ref Person p)
{
...
}

qq342947998
qq342947998   2016.04.13 17:16

不对啊,实参p应该把引用地址复制给了形参,所以形参和实参应该指向同一个内存空间的,难道我理解错了吗

caozhy
caozhy 你理解错了。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于Unity3D 引用类型变量new之后,任然为null 的 解决办法.
一、现象 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ClassTest:MonoBehaviour  {     public string Mystring;     public ClassTest( string IN )    
JavaScript中的基本类型和引用类型的赋值问题和传参问题
我们先来看一个基本类型的例子:var num1 = 5; var num2 = num1;上面的num1属于基本类型,把num1赋值给num2,相当于把num1的一个副本赋值给num2,num2中的5和num1中的5是完全独立的,此后这两个变量可以参与任何操作而不会相互影响。如下图所是: 接着我们看看引用类型的例子:var obj1 = new Object(); var obj2 = obj1;
将对象传入方法内然后赋值成null,为什么执行完方法之后,值不是null?
https://www.zhihu.com/question/55507451
引用类型值类型赋值
赋值  一.字符串 1. using System;   2. class Test   3. {   4.     public static void Main()   5.     {   6.         string s1 = "hello";   7.         string s2 = s1;   8.         Console.WriteLi
C#值类型赋值和引用类型赋值
值类型保存的是实际数据,赋值的时候是把数据复制一份赋给另一个变量。 引用类型中保存的是“实际数据的指针”,赋值的时候是把指针复制一份,赋值给另一个引用变量,这两个指针指向相同的内存地址,有一个改变另一个同样改变。
引用类型的赋值、浅拷贝和深拷贝的区别
引用类型的赋值以及浅拷贝和深拷贝三种的数据操作是不一样的。 用类的对象来进行举例说明 首先,赋值的话很简单,就是将原来对象的地址给新的对象拷贝一下即可。 浅拷贝,需要继承ICloneable 接口(支持克隆,即用与现有实例相同的值创建类的新实例)然后用MemberwiseClone 方法(创建当前 System.Object 的浅表副本)。但是需要注意的是Memberwise
C#值类型、引用类型复制之比较
众所周知,C#复制有深度复制和浅度复制,这里本人添加了它们与赋值运算(=)进行复制的的比较。
C#控制台基础 泛型中default的用法,值类型位0,引用类型为null
慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplicat
List<T>.Add(T) 引用类型与值类型
问题原因:     在考试系统中,题型的添加 是由题型的组件构成的。而在题型中,选择题,则应该是由 一个 题型基类(题干)和 四个 单选按钮 组成的。 这个非常容易理解。       每个组件,都对应详情信息 比如:题型基类(题型、难度等级、章节范围等) 选项(选项、是否单选、是否乱序)       对于题型的添加,则是通过查询 添加的组件详情,进行拼凑。然后进行
C# 值类型与引用类型 null与可空类型
一,值类型与引用类型值类型就是内存中某处位置保存的值,该值具备实际意义。比如int i=10;内存中的10就是i的值。引用类型也是内存中保存的值,但是该值指向内存中其他位置。比如String str=”123”。str保存的实际上是”123”在内存中存储的位置的地址,只是我们在使用的时候C#语言知道str是引用类型就把对应的”123”取出来给我们用。二,null的含义值类型总是包含一个值,所以不存在