关于一个函数返回值的问题

问题描述

我这个函数是实现网站当前位置导航的使用的递归protectedstringnv_back_class(stringcid,stringhtml){if(cid!="0")//判断是否是根目录{SqlCommandcmd=newSqlCommand("select*fromclasswhereclassid="+cid,con);SqlDataReaderdr=cmd.ExecuteReader();dr.Read();stringclassname=dr["classname"].ToString();stringContents=dr["Contents"].ToString();stringid=dr["cid"].ToString();html="<ahref="+Contents+"target=_blank>"+classname+"</a> >>> "+html;dr.Close();nv_back_class(id,html);}returnhtml;}目前问题是我在returnhtml;设置了个断点返回的比如是111但是用stringclass_html=nv_back_class(cid,str);去返回值得只有1也就是说dr.Close();nv_back_class(id,html);这句里的东西没取得不知道为什么请高人指点一下实在想不通

解决方案

解决方案二:
原因很简单。因为字符串驻留技术,所以string虽然是引用类型,常常表现出值类型的行为。//假设有两个方法如下:publicvoidFoo(stringstr){str="notaaa";}publicvoidFoo(refstringstr){str="notaaa";}/************************************************************///调用,这里注意:stringstr="aaa";Foo(str);//调用完毕之后,stringstr的值是多少,还是"aaa"!!!Foo(refstr);//调用完毕后,stringstr的值变成了"notaaa";

时间: 2025-01-03 07:43:18

关于一个函数返回值的问题的相关文章

js中一个函数获取另一个函数返回值问题探讨_javascript技巧

复制代码 代码如下: //此种为异步,还不等ajax赋完值,函数就return了. function getCaseInfoForMap(){ var formInfo=$("#firstForm").serialize(); var dd; $.ajax({ type:"post", url:"<%=path %>/webmodule/constructionDecision/WjInfo/getCaseInfoForMap.do?timeT

前端-【一个神奇的问题】js函数返回值的问题

问题描述 [一个神奇的问题]js函数返回值的问题 两个js函数: function a(){ var str = '你好~'; return str; } 跪求解答: 我如何得到a()函数返回的值保存到一个变量里面去? 像java里这样 var b =a();我试过了,得不到值... 拜谢哇 解决方案 看看你是不是有定义了别的叫a的函数或者变量.光这么写没有问题. 解决方案二: function aaa(){ var str='你好~'; function bbb(){ alert(str);

c++-在写函数时 是不是要把返回值都放在形参表里?把函数返回值设定为true/false?

问题描述 在写函数时 是不是要把返回值都放在形参表里?把函数返回值设定为true/false? 在写函数时 是不是要把返回值都放在形参表里?把函数返回值设定为true/false? 解决方案 主要还是看程序需要把,这种想法只是对于一些内存申请操作来说,函数在结束后就将函数内申请的控件释放.如果已经在外部申请好了内存,是可以当做返回值返回的.所以说并不一定就要把返回值放在形参表里. 解决方案二: 这也是一种方式,尤其对于要返回多个结果的时候,一般通过参数来传递结果.然后函数返回值来表示函数是否调用

Python函数返回值实例分析

  本文实例讲述了Python的函数返回值用法.分享给大家供大家参考.具体分析如下: 最近学一些Python的基本用法,看到定义函数,发现似乎只能返回一个返回值,想想matlab里返回多个返回值多方便啊,网上查了查,看到有返回多个值的方法. python 函数返回值有两种形式: 1 返回一个值. 2 返回多个值. 现看看返回一个值的吧. ? 1 2 3 4 def firstvalue(a,b): c = a + b return c print firstvalue(1,2) #结果:3 再看

plsql调用函数返回值为空

问题描述 plsql调用函数返回值为空 函数: create or replace function avg_pric(v_ctgry in varchar2,v_pric in out number) return number is Result number; v_qnty number; begin if v_pric is null then v_pric := 0; end if; select avg(productprice),min(quantity) into v_pric,

函数返回值是否使用引用类型的问题:理解引用、返回值

在<对象更有用的玻璃罩--常引用>一文中,介绍了对象作为函数的参数时,推荐使用引用的形式.并且,如果实际参数的值不允许改变时,声明为常引用更佳. 在<第8周-任务1-方案3-复数类中运算符重载(与实数运算)>中,又讨论了一个问题,结论是:在类似复数加法运算符重载这样的函数,形式参数用作为常引用最佳,如: friend Complex operator + (const Complex &c, const double &d); friend Complex oper

关于c++函数返回值为const引用的问题.

问题描述 关于c++函数返回值为const引用的问题. 假设 函数 const int& A(); 那么 int b = A(); 和 const int& c = A(); 我理解的是b应该是一个拷贝,c是一个不能被改变的引用,是这样么? 解决方案 对,b是拷贝,c是临时对象引用,生命期延长到当前空间

c++函数返回值是数组问题

问题描述 c++函数返回值是数组问题 比如现在要求定义一个函数fun(),在主函数调用时直接用fun():就能输出在fun函数里定义好的一个字符串,那要fun函数的返回值怎么返回才行,为什么我返回指针但打印出来却不是正确结果?求大神解释 解决方案 一般来说,出于内存管理的需要,让主程序来分配内存,传指针.比如scanf函数,就是通过这个方式输入值. 比如 void getstr(char * buffer) { char str[] = "hello world"; strcpy(bu

python读取oracle函数返回值_python

在oracle中创建一个函数,本来是想返回一个index table的,没有成功.想到文本也可以传输信息,就突然来了灵感,把返回值设置文本格式. 考虑到返回数据量可能会很大,varchar2类型长度吃紧,于是将返回值类型设置为clob.  我是用scott用户的测试表emp,这个是函数定义情况: create or replace function test_query_func(dept varchar2) return clob is type test_record is record (