永发信息网

C#中的返回值

答案:2  悬赏:0  手机版
解决时间 2021-03-31 10:45
  • 提问者网友:却不属于对方
  • 2021-03-30 16:40
C#中的返回值
最佳答案
  • 五星知识达人网友:像个废品
  • 2021-03-30 18:16
private byte[] getAuth()
{  
    return new byte[] { 1, 1, 0, 0 };
}你可以直接写成上面那样的,一句话就ok。
 
getAuth()当然是等于tmp的,但是你要理解,new byte[] { 1, 1, 0, 0 }; 是一个固定长度(4个元素)的字节数组,它是被创建到“堆”上的,tmp是这个数组的一个引用,getAuth()返回的也是这个数组的一个引用,即getAuth()和tmp都是指向同一个数组,但getAuth()和tmp本身(它们相当于指针)可能不同。
你可以把getAuth()当成一个变量,比如getAuth()[1],跟tmp[1]效果是一样的,不信可以试一试。
********************
对于上面的代码,如果是public的话,用属性的可读性会更好一些
public byte[] Auth{
    get{return new byte {1,1,0,0};}
    //private set //。。。。   
}
全部回答
  • 1楼网友:低血压的长颈鹿
  • 2021-03-30 19:14
(补充三楼)
这里的 RETURN 只能作为你方法的返回值,但是并不修改被调用参数的原始值,如果需要更改原始值,需要加入 ref 关键字。
另外补充一下
你的程序首先输出一个 5,再输出一个 25
在第一次输出的时候, myNumber 的值并没有改变,是初始值
在第二次输出的时候,myNumber 的值在调用 DoubleNum()方法的时候没有改变,真正改变的时候是将 DoubleNum() 方法的返回值赋给 myNumber。这个时候 myNumber 的值才由 5 被覆盖为 25.
这么解释你明白了么?
希望对你能有所帮助。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯