代码这样写有问题吗,求解

写了类似下面的代码,老大说以后不准写这样的代码,小弟费解,求指教

 

代码情况(简写,意思已表达):

public static void main(String[] args) {
    Student stu = new Student();
        
        //stu.xxx
         
    Student stu2 = new CodeStyle().getStudent(stu);
}

private Student getStudent(Student stu) {
    // xx -----
        stu.setId(1);
    stu.setName("student");
    return stu;
}

 

即 目的是:调用getStudent()方法,在方法中对参数stu进行一些处理,最后得到一个Student对象返回

 

不过我的方式是在调用getStudent()方法前new一个对象,引用传递到getStudent()方法中对其进行处理

 

老大说这样写部署在分布式应用中会挂掉

他意思是 这样的代码应该在getStudent()方法里new一个Student对象,处理后在返回

类似上面的对象引用传递,处理,再返回会挂掉。

 

额 具体原因不知为何? 为何在那样的环境会挂掉?

 

求解, 谢谢了!(新手,分很少,谅解啊各位兄台)

 

 

 

 

 

 

 

 

6个回答

你能写出这样的代码,也不容易,短短的一个方法,犯了不少错误。
1. 以对象作为参数传递给方法,方法内最好不要修改对象,否则程序出错的时候很难找到是在哪儿被修改。
2. 把参数对象作为返回值,这样就是两个引用指向同一个对象,容易引起内存泄露,对象无法被垃圾回收器清除。
3. Student stu2 = new CodeStyle().getStudent(stu);
这也很糟糕,CodeStyle被创建出来,只是为了创建另一个对象,如果是这样,就应该把getStu方法设置成静态的。

我的理解是这样的:
你调用这个方法的时候getStudent(Student stu) 传进来是一个对象的引用,此时在栈空间中多了一个地址,也是指向stu,那现在就有两个相同的地址指向stu了。在getStudent方法内对stu进行了操作,就影响到getStudent方法外面声明的同一个stu对象的值。
就存在了两个地方都可以更改一个对象了。

public static void main(String[] args) {

Student stu = new Student();

    //stu.xxx   

new CodeStyle().getStudent(stu);   

}

private void getStudent(Student stu) {

// xx -----

stu.setId(1);

stu.setName("student");

}

这样行不行?

你的目的是改stu的值吧..如一楼所说...
如果不是的话..就要做深度clone..

你老大的意思是
[code="java"]
private Student getStudent() {

Student stu = new Student();
stu.setId(1);
stu.setName("student");
return stu;
}
[/code]
应用会挂掉,可能是从垃圾回收角度看的,也就是内存溢出(你创建的对象没有被回收)。

在看上面的getStudent方法,当调用该方法时,stu变量的作用域只在该方法期间存在,
一旦该方法返回,则在这个方法内创建的对象就符合垃圾回收条件,可以被回收掉。

第一 : [color=red]部署在分布式环境中会挂掉?[/color] 8)
第二 : 为嘛不用deepclone

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
这样写有问题吗?
If 名片管理系统.Option9.Value = 1 And 名片管理系统.Option10.Value = 1 & _rn 名片管理系统.Option11.Value = 1 And 名片管理系统.Option12.Value = 1 & _rn 名片管理系统.Option13.Value = 1 And 名片管理系统.Option14.Value = 1 & _rn 名片管理系统.Option15.Value And 名片管理系统.Option16.Value = 1 Thenrn rn temp = 1
这样写有问题吗?
这样写有问题吗?rnresponse.write " "rnResponse.Write "写客户端注册表成功!"
创建线程,这样写有问题吗
m_pCeThread = CreateThread(NULL, 0 , SCeThread, hwnd, 0L, &ThreadID);rnCloseHandle(m_pCeThread);rnrnCreateThread之后马上CloseHandle,这样线程会不会马上关闭
这样写有缺点吗
我写了这样一个代码rn dim zhuce,jiabin,banjiliuyan,zhaopian,toupiao,zuori,jinri,jinrizhaopian,jinridenglurn set rs=cn.execute ("select count(*) from ec ")rn zhuce=rs(0)rn rs.closern set rs=cn.execute ("select count(*) from ec where left(studentid,3)<>'012'")rn jiabin=rs(0)rn rs.closern set rs=cn.execute ("select count(*) from forum where towho='everyone'")rn banjiliuyan=rs(0)rn rs.closern set rs=cn.execute ("select count(*) from photo ")rn zhaopian=rs(0)rn rs.closern set rs=cn.execute ("select count(*) from vote")rn toupiao=rs(0)rn rs.closern set rs=cn.execute ("select count(*) from forum where datediff('d',pubtime,now())=1 and towho='everyone'")rn zuori=rs(0)rn rs.closern set rs=cn.execute ("select count(*) from forum where datediff('d',pubtime,now())=0 and towho='everyone'")rn jinri=rs(0)rn rs.closern set rs=cn.execute ("select count(*) from photo where datediff('m',pubtime,now())=0")rn jinrizhaopian=rs(0)rn rs.closern set rs=cn.execute ("select count(*) from ec where datediff('d',lastedtime,now())=0")rn jinridenglu=rs(0)rn rs.closern反复使用set rs=.......这样会降低服务器性能吗rn我这样使用是不是反复在创建Recordset对象啊?rn请高手给予指点
Android.mk这样写有问题吗?
LOCAL_PATH:= $(call my-dir)rnrnrncommon_SRC_FILES := xglmk.c glib.c rnrncommon_C_INCLUDES += $(LOCAL_PATH)/includerninclude $(CLEAR_VARS)rnrnLOCAL_SRC_FILES := $(common_SRC_FILES)rnLOCAL_C_INCLUDES += $(common_C_INCLUDES)rnLOCAL_SHARED_LIBRARIES += $(common_SHARED_LIBRARIES)rnLOCAL_MODULE:= libxglmkrninclude $(BUILD_SHARED_LIBRARY)rnrnrninclude $(CLEAR_VARS)rnLOCAL_SRC_FILES := $(common_SRC_FILES)rnLOCAL_C_INCLUDES += $(common_C_INCLUDES) rnLOCAL_SHARED_LIBRARIES += $(common_SHARED_LIBRARIES)rnLOCAL_MODULE:= libxgl rnLOCAL_LDLIBS += -landroid -lz -L$(LOCAL_PATH) -lcommonrninclude $(BUILD_SHARED_LIBRARY)rnrnrn外加一个另外一个工程生成的libcommon.so,已经拷贝至armeabi目录下了 也查看设备的lib目录也生成了可是加载libcommon.so时老提示失败rnrn编译没出错 运行时报错了rn
存储过程这样写有问题吗?
@FactoryName varchar(50)rn ASrncreate table table1 (FactoryId int null,totalmonth1 money null)rninsert into table1 (FactoryId,totalmonth1)rnselect tb_User.FactoryId as FactoryId,('$'+ convert( varchar(50),sum(tb_MPCost.MPCost)))as totalmonth1 rnfrom tb_MPCost,tb_User,tb_Factory ,tb_CostCenter whererntb_MPCost.PCNumber=tb_User.PCNumber andrn tb_CostCenter.CostCenterId=tb_User.CostCenterId rnand tb_Factory.FactoryId =tb_User.FactoryId rnand tb_Factory.FactoryName= @FactoryNamernand tb_MPCost.MPCostTime between convert(varchar(10),DATEADD(day,-DATEPART(DAY,GETDATE())+1,dateadd(month,-1,GETDATE())),23) +' 00:00:00' rnand convert(varchar(10),DATEADD(day,-1,DATEADD(month,0,GETDATE()-day(GETDATE())+1)),23)+' 23:59:59' rngroup by tb_User.FactoryIdrnrndrop table table1rnrnrn为什么老是报这样的错误,请高手帮忙看一下rnrnMsg 260, Level 16, State 1, Procedure FactoryCostTotal, Line 6rnDisallowed implicit conversion from data type varchar to data type money, table 'SLFMMS.dbo.table1', column 'totalmonth1'. Use the CONVERT function to run this query.rn
存储过程这样写有问题吗!
-------复检申请操作---------------------------------rn Procedure SP_U_RepeatCheckOperatern (rn sResult out varchar2,rn sSupplyRelationID t_sqm_supplyrelation.supplyrelationid%type, --供应关系IDrn nRepeatApplyQuantity T_DRM_REPEATCHECKAPPLY.REPEATAPPLYQUANTITY%type,--复检申请数rn sBatchCode T_DRM_REPEATCHECKAPPLY.Batchcode%type, --批次rn sCreateMan T_DRM_REPEATCHECKAPPLY.Createbillman%type --单据创建人rn )rn ISrn V_RepeatBillCode T_DRM_REPEATCHECKAPPLY.REPEATCHECKBILLCODE%type; --单据编号rn BEGINrn --申请表中插入记录rn insert into ................rn -----更新供应关系表rn UPDATE T_SQM_SUPPLYRELATION .....rn sResult:='操作成功!';rn commit;rn exceptionrn when others thenrn sResult:=SQLERRM;rn rollback;rn END SP_U_RepeatCheckOperate;rnrn我的问题是rn 当提交的时候机器突然死机,为什么这个过程只执行了insert into部分,而下面的没有执行了,理论上是要么成功,要么都不成功才对呀,恳请指教!
这样写有错误吗?
我想增加EMPLOYEE_BASIC表的外部键rn大家看这样有什么错误啊?rnALTER TABLE "HXHWB"."EMPLOYEE_BASIC" ADDrn( rnCONSTRAINT DEPT_ID_FK FOREIGN KEY (DEPT_ID) rnREFERENCES "HXHWB"."DEPT"(DEPT_ID), rnCONSTRAINT JOB_ID_FK FOREIGN KEY (JOB_ID) rnREFERENCES "HXHWB"."JOB"(JOB_ID)rn)rn错误提示:rn服务器: 消息 170,级别 15,状态 1,行 2rn第 2 行: '(' 附近有语法错误。rn
这样写有什么问题吗
select name,to_char(hireday,'YYYY-MM-DD HH24:MI:SS') from employees rnwhere hireday > to_date(to_char(sysdate,'YYYY-MM-DD')||'6','YYYY-MM-DD HH24');rnrn运行会提示rnrnERROR 位于第 2 行:rnORA-01861: 文字与格式字符串不匹配rnrn哪里不对呢
这样写有语法错误吗?
我想把bmp->operator HBITMAP();得到的句柄付到hOldBM中。rnbmp能够确认,保存了一个CBitmap对象。rnrnHBITMAP hOldBM;rnhOldBM=bmp->operator HBITMAP();
这样写有错误吗!!
convert(binary(8),'35qrq')
这样写有什么不妥吗?
rnchar *some(...)rnrn char str[16];rn .....rnrn return str;rnrn是返回的类型不对,还是别的什么不妥?rn
我的C代码这样写有问题吗?有时候会出问题
本函数的原理是:rn接受“文件格式”和“程序路径”的参数,之后,打开记录这些数据的文件,搜索“格式“,找到的话,就将这一行内容修改掉,也就是更新格式关联。rn有什么地方需要完善的?rn我担心的问题是,删除输出的临时文件会有延迟吗?rn在连续多次调用这个函数进行批量修改关联数据的时候,往往会遇到临时文件未被删除导致文件内容重复。rn记录这些数据的文件的内容是这样的:rnavi = /XXXX/XXXX/XXXX/XXX rn(XXXX表示某某)rnrn[code=C/C++]#include rn#include rn#include rn#define PD_Y strcmp(ch,"y")==0||strcmp(ch,"Y")==0rn#define PD_N strcmp(ch,"n")==0||strcmp(ch,"N")==0rn#define SR_ER printf("输入错误!请重新输入:");scanf("%s",&ch)rn#define COPY system("cp ./out/resourcemanager.app ./");remove("./out/resourcemanager.app")rnint Regedit_E(char *Format,char *exe_link) rnrn FILE *tmp,*in,*out; /*临时文件,读取的文件,输出的文件*/rn int i,line=0,newline=0,sspd=1; rn char *link=LINK; /*读取的文件的路径*/rn char *baklink=BAK_LINK; /*备份的文件的路径*/rn char *outfile=OUT_FILE; /*输出的文件的路径*/rn char ch[128],str1[1024],tmpstr[512],commad[1024],str2[512],str3[1024];rn sprintf(str,"%s = ",Format);rn sprintf(newstr,"%s",exe_link);rn if((tmp=fopen(baklink,"r"))==NULL) /*如果没有备份文件*/rn printf("\n是否备份?[Y/N]:");rn scanf("%s",&ch);rn while(ch)rn rn if(PD_Y)rn rn sprintf(command,"cp %s %s",link,baklink);rn system(command); /*备份文件*/rn break;rn rn else if(PD_N)rn rn break;rn rn SR_ER;rn rn rn if((in=fopen(link,"r"))==NULL) /*如果文件打开失败*/rn rn printf("未找到文件\n");rn return 0;rn rn while(fgets(tmpstr,1024,in)) /*用while循环来读取文件数据*/rn line++; /*用来记数*/ rn if(strstr(tmpstr,str)) /*如果搜索到字符串时*/rn rn printf("修改第%d行:%s",line,tmpstr);rn out=fopen(outfile,"a");rn if(out==NULL)rn rn printf("无法创建输出文件\n");rn return 0;rn rn fprintf(out,"%s%s\n",str1,str2); /*将要修改的数据写入到这一行*/ rn fclose(out);rn sspd=0; /*赋值给这个常量,意思是搜索到了*/rn rn else /*没有搜索到字符串*/rn rn out=fopen(outfile,"a"); /*以追加方式打开文件*/rn fprintf(out,"%s",appstr);/*将要读取的数据写入到输出文件\n*/rn fclose(out);rn rn rn if(sspd==1) /*如果这个常量的值还是1,那么就是没有搜索到*/rn rn printf("新增:第末行:%s%s\n",str1,str2);rn in=fopen(link,"a"); /*以追加方式打开文件*/rn fprintf(in,"%s%s\n",str1,str2); /*将字符串追加至文件末尾*/rn fclose(in);rn return 0;rn rn COPY; /*将输出文件覆盖现有文件,并删除输出文件*/rn return 0;rn[/code]
验证控件我这样写有问题吗?
帐户密码:rnrnrnrnrnrnrn密码确认:rnrnrnrnrnrnrnrnrnrn我这样写点按钮时验证是可以验证,但是验证完后直接插数据库! 我这样哪里错了么!!!!
webservice 我这样写有问题吗
[WebMethod(Description = "接收 Sql 语句返回Dataset")]rn public DataSet SelectReturnDataset(string SelectQuery, string TableName)rn rn rn tryrn rn rn DataSet ds = MyConn.getDataSetTable(SelectQuery, TableName);rn return ds;rn rn catch (Exception ex)rn rn return DataError(ex);rn rn rn rnrn我这样写 如果很多人同时访问这个 有问题吗 rn
这样写有问题吗?在线等待
int MaxID=10;rnarraylisy[,] sBatch=new arraylist[5,2]rnfor(int i=0;i
这样写有问题吗?关于CStringList
CStringList &Fun()rn rn static CStringList strList ;rn CString str = "test" ;rn strList.AddTail(str) ;rn return &strList ;rnrnrn这里的AddTail应该是AddTail( const CString& newElement );这样的吧?rn这里把一个局部变量放到list里面,返回后str的生命期结束了,在Fun外面通过strList访问str的内容有问题吗?那位解释一下。thx!!
这个重载这样写有问题吗?
class CItemrnrn{rnrn/*************上面代码省略******************/rnconst CItem& operator=( CItem &other)rn rn if(this!=&other)rn Itempath.Empty();rn Itempath = other.GetItempath();rn Itemname.Empty();rn Itemname = other.GetItemname();rn FileList.RemoveAll();rn POSITION aPosition=other.FileList.GetHeadPosition();rn while(aPosition)rn rn FileList.AddTail(other.FileList.GetNext(aPosition));rn rn return *this;rn rnprivate:rn CString Itempath;//项目路径rn CString Itemname;//项目名rn}rnrnrn////////////////////////////////////////rn看了半天没发现啥问题,编译也没问题,但是就是访问冲突。。。
这样写有问题吗?(JSP初级)
<%@ page contentType="text/html;charset=GB2312" %>rn<%@ page import="java.io.*"%>rnrnrn<%rnFile f=new File("D:/","A.java");rnif(f.exists())rn rn f.delete();rn rn elsern rn f.createNewFile();rn rn<%rnout.print("File name:"+f.getName());rnout.print("File path:"+f.getPath());rn%>rnrnrnrn
请教下SQL这样写有问题吗
INSERT INTO #CalTab1(FDeptID,FCostObjID,FCostItemID)rnselect v.FDeptID,v.FCostObjID,u.FItemID FROM rn (SELECT Distinct FDeptID,FCostObjID FROM #CalTab1) v rn Cross join cbCostItem u rn为什么当我这样写时插入了一些数据后(才几百行数据)就会报错,报错信息为rn‘由于数据移动,无法继续以 NOLOCK 方式扫描。’rn已经用dbcc检查过,数据库没有问题
代码这样写有什么好?
rn这是网上下的一段代码,这样写有什么好的方面?rnrnclass CMessagernrnpublic:rn CMessage(void);rn ~CMessage(void);rnrn virtual BOOL SendMsg(LPCTSTR phone) return FALSE;rn BOOL StartSend();rn ............ rnrnprotected:rn TCHAR *m_pData;rn ... rn;rnrnrnclass CSms : public CMessagernrnpublic:rn CSms();rn ~CSms();rn virtual BOOL SendMsg(LPCTSTR phone);rn;rnrnrnBOOL CSms::SendMsg(LPCTSTR phone)rnrn ..............rnrnrnrn
vb.net类库这样写有问题吗??
_rnPublic Class CadComClassrnrn Inherits ServicedComponentrn Implements ICadComClassrnrnrn#Region "COM GUIDs"rn ' 这些 GUID 提供该类的 COM 标识及其 COM 接口。rn ' 如果您更改它们,现有的客户端将再也无法rn ' 访问该类。rn Public Const ClassId As String = "12A5B10D-4349-4CDD-9A1F-374BF4EEF32B"rn Public Const InterfaceId As String = "B04052E0-B244-44CC-A2BD-CD73C25FD53E"rn Public Const EventsId As String = "FA71CD36-3865-4166-8B22-938140910CA6"rn#End Regionrnrn ' 可创建的 COM 类必须具有不带参数的 rn ' Public Sub New(),否则,该类将不会注册到 COM 注册表中,rn ' 而且不能通过 CreateObject rn ' 来创建。rn Public Sub New()rn MyBase.New()rn End Subrnrn Public Function Add(ByVal a As Double,ByVal b As Double) As Doublern rn return a+brn rn rnEnd Classrnrn这样写生成的DLL似乎无法被VC++调用,它本身也没有输出函数rn是否还要加点什么,还是要设置什么?请指教一下rn本人新手!!rn这是我所有的分了rnrn
这样写有啥问题
sockaddr_in st_Sockaddr = '\0';rnrnrngcc 提示 警告:xxx的初始值设定周围缺少花括号rnrnrn但是WINDOWS就没提示警告,怎么写才是正确的?
老大帮我看看这段代码,我这样写有问题吗?
using System;rnusing System.Collections.Generic;rnusing System.Linq;rnusing System.Text;rnrnnamespace DuckDemornrn public class Programrn rn static void Main(string[] args)rn rn GreenDuckname greenduckname = new GreenDuckname();rn TangLaoYaDuckname tanglaoyaduckname = new TangLaoYaDuckname();rn rnrn rn //y鸭子的说话,会飞的特性;rn public abstract class Duckrn rn private static string duckname;rnrn public static string Ducknamern rn get return duckname; rn set duckname = value; rn rn //抽象方法必须放在抽象类中;抽象类不能实例化;同时抽象方法没有实现(方法体),在子类中必须实现它;rn //虚方法必须有实现(方法体)rn public abstract void Fly(string duckname);rn public abstract void Sound(string duckname);rn rn /// rn /// 绿头鸭继承了语言和会飞的类rn /// rn public class GreenDuckname:Duckrn rn rn public GreenDuckname()rn rn Duck.Duckname="绿头鸭";rn Fly(Duck.Duckname);rn Sound(Duck.Duckname);rn rn public override void Fly(string duckname)rn rn Console.WriteLine(duckname + "飞");rn rn public override void Sound(string duckname)rn rn Console.WriteLine(duckname + "呱呱叫");rn rn rn /// rn /// 唐老鸭继承了语言和会飞的类rn /// rn public class TangLaoYaDuckname : Duckrn rnrn public TangLaoYaDuckname()rn rn Duck.Duckname = "唐老鸭";rn Fly(Duck.Duckname);rn Sound(Duck.Duckname);rn rn public override void Fly(string duckname)rn rn Console.WriteLine(duckname + "飞");rn rn public override void Sound(string duckname)rn rn Console.WriteLine(duckname + "讲人话");rn rn rnrnrn从设计模式的角度来说,我这段代码设计的有问题吗?如有问题还请指正。小弟在此谢过了。。
高手请看后台代码这样写有问题吗?
我想做一个名师推荐栏目.DefaultPic显示的是图片,cate_Name显示图片对应的标题.页面代码如下:rn rn rn rn rn rn <%=cate_Name%>rnrn[color=#FF0000]后台代码像下面这样写有问题吗?[/color]rn[code=C#]string sqlid = "select * from info where nclassid=30";//名师推荐rn OleDbDataAdapter da = new OleDbDataAdapter(sqlid, conn);rn DataTable dt = new DataTable();rn da.Fill(dt);rn for(int i>0;int
这么写有问题吗?
学C#!有一个自定义结构,某个函数需要返回一个该结构的数组,这么写标准吗?rn还有我需要为每个item都new一下吗,以前用的delphi,添加进List的都应该是指针,那么返回的list[0]、list[1]的ID值都应该是2,但是C#里这里我测试list[0].ID=1,list[1].ID=2,还有我不用Free掉List吧?这是用在网页里的,会自动释放吗?rn[code=C#]rnpublic struct Itemrnrn public string ID;rn public string Name;rnrn[/code]rn[code=C#]rnpublic List test()rnrn List list= new List();rn Item item = new Item();rn item.ID = "1";rn list.Add(item);rn item.ID = "2"; //只是为了测试,到底Add的是指针还是实例rn list.Add(item);rn return list;rn[/code]
这么写有问题吗?
float d_atof(void *string)rnrn float sum;rn float dot=0.0;rn int digit,i;rn char *p = (char *)string;rnrn rn //跳过空格rn while(isspace(*p))rn p++;rnrn for(sum=0; isdigit(*p); p++)rn rn digit = *p -'0';rn sum = 10 * sum + digit;rn rn if(*p=='.')rn rn p++;rn for(dot=0.0, i=10; isdigit(*p); p++)rn rn digit = *p - '0';rn dot = dot + (float)digit/i;rn i *= 10;rn rn rn rn return sum + dot;rn
这样写有问题么?(急)
ADOquery1.sql.Text:='select name form name where hykh="'+Edit2.text+'"';rn ADOquery1.execsql;rnrn每次执行这句就说:语法错误(操作符丢失)rn这问题在哪呢?rnrn还有?怎么限定dbgrid单元格的宽度?
多条件的存储过程,这样写有意义吗?????
CREATE PROCEDURE web_Searchrn@Brand varchar(50), ---品牌rn@Catena varchar(50), ---系列rn@CarType varchar(50), ---车型rn@Byear int, ---车龄rn@Mileage int, ---行驶里程数rn@ShowOrder int ---排序方法,1表示rnrnASrnrnDeclare rn@Sql nvarchar(1024),rnrnrnSet @Sql = 'Select * from TCar Where bAuditing =1 rnrn rnif len(@Brand) > 0 rn beginrn set @Sql=@Sql+' and 'rn set @Sql=@Sql+' vBrand=''' + @Brand+''''rn end rnrnif len(@Catena) > 0 rn beginrn set @Sql=@Sql+' and 'rn set @Sql=@Sql+ ' vCatena=''' + @Catena +''''rn end rnrnif len(@CarType) >0 rn beginrn set @Sql=@Sql+' and 'rn set @Sql=@Sql+ ' tCarType=''' + @CarType +''''rn end rnrnif @Byear >0 and @Byear is not null rn beginrn set @Sql=@Sql+' and 'rn set @Sql=@Sql+ ' nYear >'+CAST(year(getdate())-@Byear as varchar)rn end rnrnif @Mileage >0 and @Mileage is not null rn beginrn set @Sql=@Sql+' and'+ rn CASE @Mileagern WHEN 1 THEN ' nMileage <= 5000' rn WHEN 2 THEN ' nMileage >= 5000 and nMileage <= 10000'rn WHEN 3 THEN ' nMileage >= 10000 and nMileage <= 20000'rn WHEN 4 THEN ' nMileage >= 20000 and nMileage <= 50000'rn WHEN 5 THEN ' nMileage >= 50000 and nMileage <= 80000'rn WHEN 6 THEN ' nMileage >= 80000 and nMileage <= 100000'rn WHEN 7 THEN ' nMileage >= 100000 and nMileage <= 150000'rn WHEN 8 THEN ' nMileage >= 150000 and nMileage <= 200000'rn WHEN 9 THEN ' nMileage >= 200000'rn END rn endrnrnrn----------------显示排序方法--------------rn set @Sql=@Sql+rn CASE @ShowOrderrn WHEN 1 THEN ' order by nPrice asc' rn WHEN 2 THEN ' order by nPrice desc' rn WHEN 3 THEN ' order by dPromulgate asc' rn WHEN 4 THEN ' order by dPromulgate desc' rn WHEN 5 THEN ' order by hit asc' rn WHEN 6 THEN ' order by hit desc'rn ELSE ' order by dPromulgate desc ' rn ENDrnrnEXEC sp_executeSql @Sqlrnrn WITH RECOMPILErnGO
这样写有错误吗? char c = '\n';
之前一直是这样用的,没有报错rn突然今天就不可以的rnvoid CImageDoc::DN_SavingRtf()rnrn FILE* stream; //--rn char c = '\n';rn errno_t err;rn if( (err = fopen_s( &stream, "Dark.rtf", "w+" )) != 0 )rn rn return;rn rn elsern rn fprintf( stream, "%8s\t", "ImageName");rn fprintf( stream, "%8s\t", "R_mean");rn fprintf( stream,"%c", c);rnrn for(int i=0;i
这样写有什么好处?
class A rnrn static class B implements Icon // (1)rn rn static class State // (2)rn rn public static final State Normal = new State(); //(3)rn public static final State Pressed = new State();rn public static final State Rollover = new State();rn private State();rn rn State state;rnrn public B( State state )rn rn this.state = state;rn rn rnrnrnrn问题:rnA : (1) 和 (2) 这里为什么要申明为static类,是因为(3)这里吗?rnrnB : 我看它实现class State 为的就是标识状态,为什么要写得这么累,这样rnrn 写有什么好处? rn
这样写有没有错
rn这里的src="./scripts.js有没有错啊?怎么我在网上看到都是src="../scripts.js" 少一个点有什么区别么?
这样写有什么好处?
using (SqlConnection conn = new SqlConnection(connectionString))rnrn............rnrnrn会处理完自动关闭连接吗?还是有别的用处?
这样写有没有内存泄露
char *str1 = new char[20];rnchar *str2 = NULL;rnrn...rnrnstr2 = str1;rnrn...rnrnif (str2)rnrn delete[] str2;rn str2 = NULL;rn str1 = NULL;rn
这样写有什么隐患?
类A里面的test函数是普通函数rn类B继承了A,并将test覆盖成虚函数rn类C继承了Brnrn现在把一个B类型的指针指向C类的一个对象rn并通过该指针调用C类的test函数rnrn下面测试结果说明调用成功了,rn但不知道这样做会不会有什么隐患?rnrn我看一般多态的代码都是在基类里面就定义了test是虚函数,rn很少看到像我这样,中间层才把它改成虚函数的rn是不是这样做有什么问题呢?rnrn[code=C/C++]rnrnint class_test()rnrn class A rn rn public:rn int test()rn rn cout << "A" << endl;rn return 1;rn rn ;rnrn class B: public Arn rn public:rn virtual int test()rn rn cout << "B" << endl;rn return 2;rn rn ;rnrn class C: public Brn rn public:rn int test()rn rn cout << "C" << endl;rn return 3;rn rn ;rnrn B *pb = new C;rnrn cout << pb->test() << endl;rn rn delete pb;rnrn return 0;rnrn[code]
这俩段代码这样写有什么不同?
(1) createBZ(zd[i][0],zd[i][1],0);rn if(map[zd[i][1]/16-1][zd[i][0]/16]<=0)rn rn createBZ(zd[i][0],zd[i][1]-16,1);rn rn if(map[zd[i][1]/16+1][zd[i][0]/16]<=0)rn rn createBZ(zd[i][0],zd[i][1]+16,2);rn rn if(map[zd[i][1]/16][zd[i][0]/16-1]<=0)rn rn createBZ(zd[i][0]-16,zd[i][1],3);rn rn if(map[zd[i][1]/16][zd[i][0]/16+1]<=0)rn rn createBZ(zd[i][0]+16,zd[i][1],4);rn rnrnrnrnrn (2) createBZ(zd[i][0],zd[i][1],0);rn if(map[zd[i][0]/16][zd[i][1]/16-1]<=0)rn rn createBZ(zd[i][0],zd[i][1]-16,1);rn rn if(map[zd[i][0]/16][zd[i][1]/16+1]<=0)rn rn createBZ(zd[i][0],zd[i][1]+16,2);rn rn if(map[zd[i][0]/16-1][zd[i][1]/16]<=0)rn rn createBZ(zd[i][0]-16,zd[i][1],3);rn rn if(map[zd[i][0]/16+1][zd[i][1]/16]<=0)rn rn createBZ(zd[i][0]+16,zd[i][1],4);rn rnrnrn大家帮忙看看这俩个有什么同,为什么这俩个代码会出现不同的效果?rn我是在同一个程序里试的,(1)可以达到我想要的效果,可是(2)确不行。这俩个都是我自己写的,(1)是以前写的,(2)是现在写的,我只把zd[i][0]和zd[i][1]的位置给换了下,可的效果就不一样了,不知道是因为什么,望知道的给说明一下.
这样写有什么问题?
[code=SQL] select pr.logid,pr.siteid,pr.recodtime,po.dynamos,po.elecqty from productlog pr left outer join powerunits po on pr.logid=po.logid and pr.siteid=po.siteid rn where pr.recodtime between to_char(Trunc(sysdate,'month'),'yyyy-mm-dd') and to_char(sysdate,'yyyy-mm-dd');rn [/code]
看看这样写有什么问题
Set cn3 = sqlconection()rnDim sql3 As Stringrnrnrnsql3 = "insert into [Group] (id,groupName) values ('" + zhuid + "','" + zhuname + "')"rnAdodc4.ConnectionString = cn3rnAdodc4.CommandType = adCmdTextrnAdodc4.RecordSource = sql3rnrnrn其中sqlconection()定义连接的信息 已经连接上了,怎么有时候能叉如数据 有时候不能呢
ccc 这样写有什么问题??
为什么这一行报错说“Expression expected.”?
这样写有什么不对??
rnrn tryrn with ADOQuery1 dorn beginrn close;rn sql.Clear ;rn SQL.Add('insert into zone values(:zid,:name)');rn Parameters.Parambyname('zid').Value:=z_id;rn Parameters.Parambyname('name').Value:=z_name;rn execSQL;rn end ;rn exceptrn showmessage('error insert0');rn end;rnrn可是不行确出现如下的错误。rn/变量或者类型不正确,或者不在可以接受的范围之内要不就是变量与其它数据冲突。rnrn我不知道是怎么回事??rn帮帮看看?? rn
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数