C#用new和不用new有什么区别

publicclassPerson{publicstringName{get;set;}publicintAge{get;set;}}voidTest1(){Person... public class Person

{
public string Name{get; set;}
public int Age {get; set;}

}
void Test1()
{
Person p = new Person();

}
void Test2()
{
Person p ;

}
Test1和Test2的写法,一个用new,一个不用new有什么区别
展开
 我来答
小樓思雨
推荐于2017-12-15 · TA获得超过1659个赞
知道小有建树答主
回答量:915
采纳率:66%
帮助的人:1118万
展开全部

这应该不是区别的问题吧

Test2 只是声明了一个变量,但这个变量是空的,根本无法使用!

如果你需要使用Test2,如:p.Age = 200;这样会报错!

也就是说你之后还得写上:p = new Person(); 对变量初始化,不然无法使用!

        void Test1()
        {
            Person p = new Person();
            p.Age = 100;
        }
        void Test2()
        {
            Person p;
            p = new Person();
            p.Age = 200;
        }
追问
Person p2=new Person();
p2.Age=20;
p2.name="小李";
p=p2;
这样直接赋值一个对象给p是可以的;
这样个赋值是值将p的指针指向p2吗?
当p2的内容改变时,p也会改变,是不是这样的呢
追答
是的,这样只是赋值指针,他们的数据都指向一个地址,其中一个改变了,另一个也会变!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式