永发信息网

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

答案:4  悬赏:60  手机版
解决时间 2021-03-07 09:02
C++决定不允许,但C#却常常这么做

就像下面这样,返回的不就是局部变量的引用吗,但C#中是可以这样的
public class Myclass
{
public Myclass AMethod ()
{
Myclass myClass1= new Myclass();
return myClass1;
}
}
最佳答案
喂喂谁跟你说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;
}
};
全部回答
没理解“返回局部变量的引用”是什么意思。举个例子?觉得不合理吗?
1)局部变量只在本函数范围有效,在此函数以外是不能使用这些变量;全局变量的有效范围是从定义变量的位置开始到本源文件结束。 2)局部变量是程序运行到该函数时给该变量分配内存空间,函数结束则释放该内存空间;全局变量是程序运行时事先分配内存空间,当程序结束时释放内存。
不知道你是指函数内部return,还是指函数参数的ref/out。 前者的话,都可以。后者的话,C++需要使用引用&,C#使用ref。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
石龙殿村怎么去啊,有知道地址的么
我常常自驾私家车外出,请问机动车辆保险单“
小明在一块又平又光滑的木板上画了一个半圆,
白芸豆俗名叫什么,有什么营养价值?
飞科fs300剃须刀刀头怎样清洗
电子科技有限公司我想知道这个在什么地方
许可可是那部电视剧人物
细胞膜上的蛋白质称为膜蛋白。不同的膜蛋白具
疫苗本上出生地和出生证明的出生地不一样怎么
小资生活化妆品店在哪里啊,我有事要去这个地
根据《机电产品国际招标投标实施办法》及《进
过了一阵之后,作家又觉得自己并未改行,原来
从广州坐列车或高铁去普陀山最便利怎样坐
泌尿失禁的类型包含()。A.压迫型B.紧迫性C.
手机玩这游戏总是会卡住是怎么回事
推荐资讯
一个喜欢你的人总是用"嗯"来回答你这表现了什
研究表明,下列属于宇宙空间特殊环境条件的是
表情图英语怎么说
沈阳新干线外语学校怎么样 都有哪些服务
淘宝一直没发货怎么办
女孩第一次发照片我应该怎么回复
济南东边有 做车身改色的吗?那一家做的好?
怎么算属什么命
五行身特旺喜泄之是什么意思
【cnas检测认证】CNAS认证实验室的检测报告单
纳智捷u6导航没有语音提示是怎么回事?设定目
为什么我的电脑放不出外音 只能用耳机或者音
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?