C#为什么可以返回局部变量的引用

C++决定不允许,但C#却常常这么做就像下面这样,返回的不就是局部变量的引用吗,但C#中是可以这样的publicclassMyclass{publicMyclassAMe... C++决定不允许,但C#却常常这么做
就像下面这样,返回的不就是局部变量的引用吗,但C#中是可以这样的
public class Myclass
{
public Myclass AMethod ()
{
Myclass myClass1= new Myclass();
return myClass1;
}
}
展开
 我来答
析逸秀0Gt
2019-02-22 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:602万
展开全部
1)局部变量只在本函数范围有效,在此函数以外是不能使用这些变量;全局变量的有效范围是从定义变量的位置开始到本源文件结束。
2)局部变量是程序运行到该函数时给该变量分配内存空间,函数结束则释放该内存空间;全局变量是程序运行时事先分配内存空间,当程序结束时释放内存。
空雪梦见
推荐于2017-10-06 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1203万
展开全部
喂喂谁跟你说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;
}
};
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-19
展开全部
不知道你是指函数内部return,还是指函数参数的ref/out。
前者的话,都可以。后者的话,C++需要使用引用&,C#使用ref。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友363f40a
2013-12-19 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:113万
展开全部
C++类似这样写会提示什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2013-12-19 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7832万
展开全部
没理解“返回局部变量的引用”是什么意思。举个例子?觉得不合理吗?
更多追问追答
追问
就像下面这样,返回的不就是局部变量的引用吗,但C#中是可以这样的public class Myclass{  public Myclass  AMethod  (){   Myclass  myClass1= new Myclass();   return myClass1;}}
追答
我想你看到的地方和你贴的代码一定有所区别,直接返回的应该有static修饰符吧?也就是有点“单例模式”的感觉。你贴这个代码,看不出有任何意义,确实没报错,但是很少人会这么写吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式