C#为什么可以返回局部变量的引用
C++决定不允许,但C#却常常这么做就像下面这样,返回的不就是局部变量的引用吗,但C#中是可以这样的publicclassMyclass{publicMyclassAMe...
C++决定不允许,但C#却常常这么做
就像下面这样,返回的不就是局部变量的引用吗,但C#中是可以这样的
public class Myclass
{
public Myclass AMethod ()
{
Myclass myClass1= new Myclass();
return myClass1;
}
} 展开
就像下面这样,返回的不就是局部变量的引用吗,但C#中是可以这样的
public class Myclass
{
public Myclass AMethod ()
{
Myclass myClass1= new Myclass();
return myClass1;
}
} 展开
5个回答
展开全部
喂喂谁跟你说C++绝不允许。
C++和C#用不同的眼光看待“类”,C#里全是引用,相当于C++里的指针。
所以你那个代码改成C++就是
class Myclass {
public: Myclass* AMethod()
{
Myclass* myClass1 = new Myclass();
return myClass1;
}
};
关键点:注意都是new
如果你一定要走邪道,
class Myclass {
public: Myclass& AMethod()
{
Myclass& myClass1 = (*new Myclass());
return myClass1;
}
};
C++和C#用不同的眼光看待“类”,C#里全是引用,相当于C++里的指针。
所以你那个代码改成C++就是
class Myclass {
public: Myclass* AMethod()
{
Myclass* myClass1 = new Myclass();
return myClass1;
}
};
关键点:注意都是new
如果你一定要走邪道,
class Myclass {
public: Myclass& AMethod()
{
Myclass& myClass1 = (*new Myclass());
return myClass1;
}
};
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-19
展开全部
不知道你是指函数内部return,还是指函数参数的ref/out。
前者的话,都可以。后者的话,C++需要使用引用&,C#使用ref。
前者的话,都可以。后者的话,C++需要使用引用&,C#使用ref。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++类似这样写会提示什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没理解“返回局部变量的引用”是什么意思。举个例子?觉得不合理吗?
更多追问追答
追问
就像下面这样,返回的不就是局部变量的引用吗,但C#中是可以这样的public class Myclass{ public Myclass AMethod (){ Myclass myClass1= new Myclass(); return myClass1;}}
追答
我想你看到的地方和你贴的代码一定有所区别,直接返回的应该有static修饰符吧?也就是有点“单例模式”的感觉。你贴这个代码,看不出有任何意义,确实没报错,但是很少人会这么写吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询