方法参数不能为变量,这是为什么?怎么解决呢?在线等

问题描述

conn.Open();foreach(stringvarinstrTableName){//常量时没有问题DataTableshemaColumnsInfo3=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,"aa",null});DataTableshemaColumnsInfo4=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,"bb",null});//变量时,第一次循环没问题,第二次就是空表DataTableshemaColumnsInfo1=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,var,null});DataTableshemaColumnsInfo2=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,var,null});}conn.Close();

解决方案

解决方案二:
楼主,能不能把问题贴全一点啊
解决方案三:
试试这样:foreach(string@varinstrTableName)
解决方案四:
今天我也碰到了一个foreach循环不到的问题,最后改用for循环就ok了
解决方案五:
引用2楼ojlovecd的回复:

试试这样:foreach(string@varinstrTableName)

----------这样也不行,您在帮忙想想办法
解决方案六:

解决方案七:
引用4楼lys1706228的回复:

引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法

提示什么错
解决方案八:
引用3楼hyj12345678的回复:

今天我也碰到了一个foreach循环不到的问题,最后改用for循环就ok了

------------不是循环不到的问题
解决方案:
var是关键字吧。。。classImplicitlyTypedLocals2{staticvoidMain(){string[]words={"aPPLE","BlUeBeRrY","cHeRry"};//Ifaqueryproducesasequenceofanonymoustypes,//thenusevarintheforeachstatementtoaccesstheproperties.varupperLowerWords=fromwinwordsselectnew{Upper=w.ToUpper(),Lower=w.ToLower()};//Executethequeryforeach(varulinupperLowerWords){Console.WriteLine("Uppercase:{0},Lowercase:{1}",ul.Upper,ul.Lower);}}}/*Outputs:Uppercase:APPLE,Lowercase:appleUppercase:BLUEBERRY,Lowercase:blueberryUppercase:CHERRY,Lowercase:cherry*/

解决方案:
可以赋予局部变量推断“类型”var而不是显式类型。var关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型或.NETFramework类库中定义的类型。//iiscompiledasanintvari=5;//siscompiledasastringvars="Hello";//aiscompiledasint[]vara=new[]{0,1,2};//expriscompiledasIEnumerable<Customer>//orperhapsIQueryable<Customer>varexpr=fromcincustomerswherec.City=="London"selectc;//anoniscompiledasananonymoustypevaranon=new{Name="Terry",Age=34};//listiscompiledasList<int>varlist=newList<int>();

解决方案:
mark!
解决方案:
引用6楼ojlovecd的回复:

引用4楼lys1706228的回复:引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法提示什么错

-----------------不提示任何错误举例strTableName[0]=“aa”;strTableName[0]=“bb”;foreach(string@varinstrTableName){DataTableshemaColumnsInfo3=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,“aa”,null});返回的shemaColumnsInfo3.rows.count为2DataTableshemaColumnsInfo4=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,“bb”,null});返回的shemaColumnsInfo3.rows4count为4DataTableshemaColumnsInfo1=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,var,null});返回的shemaColumnsInfo1.rows.count为0}foreach第一次进入如果@var=“aa”DataTableshemaColumnsInfo3=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,“aa”,null});返回的shemaColumnsInfo3.rows.count为2DataTableshemaColumnsInfo4=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,“bb”,null});返回的shemaColumnsInfo3.rows4count为4DataTableshemaColumnsInfo1=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,var,null});返回的shemaColumnsInfo1.rows.count为2foreach第二次进入@var=“bb”DataTableshemaColumnsInfo3=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,“aa”,null});返回的shemaColumnsInfo3.rows.count为2DataTableshemaColumnsInfo4=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,“bb”,null});返回的shemaColumnsInfo3.rows4count为4DataTableshemaColumnsInfo1=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,var,null});返回的shemaColumnsInfo1.rows.count为0------------------问题就是这样
解决方案:
引用11楼lys1706228的回复:

引用6楼ojlovecd的回复:引用4楼lys1706228的回复:引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法提示什么错-----------------不提示任何错误举例strTableName[0]=“aa”;strTableName[0]=“bb”;foreach(string@varinstrTableName){DataTableshemaColumnsInfo3=conn.GetOleDbSchemaTable(OleDbSchemaGui…

不知道你这里是不是写错了,下标都是0你确定第二次进入的时候var是bb?加断电调试过了吗?
解决方案:
引用12楼ojlovecd的回复:

引用11楼lys1706228的回复:引用6楼ojlovecd的回复:引用4楼lys1706228的回复:引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法提示什么错-----------------不提示任何错误举例strTableName[0]=“aa”;strTableName[0]=“bb”;foreach(string@varinstrTableName){DataTableshemaColumnsIn…

--------------是写错了strTableName[1]=“bb”;进入的是bb所以很奇怪
解决方案:
问题不在Foreach吧应该是在newobject[]{null,null,var,null}这里吧
解决方案:
up
解决方案:
那你要是把DataTableshemaColumnsInfo3=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,"aa",null});DataTableshemaColumnsInfo4=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,newobject[]{null,null,"bb",null});这两句删掉呢
解决方案:
引用12楼ojlovecd的回复:

引用11楼lys1706228的回复:引用6楼ojlovecd的回复:引用4楼lys1706228的回复:引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法提示什么错-----------------不提示任何错误举例strTableName[0]=“aa”;strTableName[0]=“bb”;foreach(string@varinstrTableName){DataTableshemaColumnsIn…

要不发给您,您帮我调试下行吗?
解决方案:
引用17楼lys1706228的回复:

引用12楼ojlovecd的回复:引用11楼lys1706228的回复:引用6楼ojlovecd的回复:引用4楼lys1706228的回复:引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法提示什么错-----------------不提示任何错误举例strTableName[0]=“aa”;strTableName[0]=“bb”;foreach(string@varinstrTableName){DataTable…

lonelyjano@163.com发过来吧
解决方案:
引用11楼lys1706228的回复:

引用6楼ojlovecd的回复:引用4楼lys1706228的回复:引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法提示什么错-----------------不提示任何错误举例strTableName[0]=“aa”;strTableName[0]=“bb”;foreach(string@varinstrTableName){DataTableshemaColumnsInfo3=conn.GetOleDbSchemaTable(…

你直接用for好了,另外,换个名字,不要用var
解决方案:
引用18楼ojlovecd的回复:

引用17楼lys1706228的回复:引用12楼ojlovecd的回复:引用11楼lys1706228的回复:引用6楼ojlovecd的回复:引用4楼lys1706228的回复:引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法提示什么错-----------------不提示任何错误举例strTableName[0]=“aa”;strTableName[0]=“bb”;foreac…

-------程序发过去了,请查收。GetColumnsInfo这个方法测试都改乱了,您凑合看
解决方案:
引用19楼qinhl99的回复:

引用11楼lys1706228的回复:引用6楼ojlovecd的回复:引用4楼lys1706228的回复:引用2楼ojlovecd的回复:试试这样:foreach(string@varinstrTableName)----------这样也不行,您在帮忙想想办法提示什么错-----------------不提示任何错误举例strTableName[0]=“aa”;strTableName[0]=“bb”;foreach(string@varinstrTableName){DataTableshemaColumnsIn…

------------都试过了谢谢关注
解决方案:
引用14楼duy02的回复:

问题不在Foreach吧应该是在newobject[]{null,null,var,null}这里吧

-----有道理
解决方案:
单步跟踪“shemaColumnsInfo1.rows.count”的值,看到下它是在哪一步的时候由2变到0的。
解决方案:
foreach(string@varinstrTableName)里,换成了@var里面的var了应该换成@var才对啊
解决方案:
:(
解决方案:
顶,var是关键字,怎么用它来做变量名呢
解决方案:
引用26楼MicroDeviser的回复:

顶,var是关键字,怎么用它来做变量名呢

改了也不行,不是这个问题

时间: 2024-10-11 17:32:13

方法参数不能为变量,这是为什么?怎么解决呢?在线等的相关文章

内部类-java方法参数的修饰符问题

问题描述 java方法参数的修饰符问题 java在写方法时,为什么有的方法参数用final修饰? 还有就是内部类存在的意义是什么? 也就是说方法中的内部类和类中的内部类各有什么应用场景(请有实战经验的大神各自举个例子)? //问题补充(关于方法中的内部类) 我的意思是: pubic class TestClass{ public void fun(){ public class Test1{ //........ } } } 解决方案 为了实现一些内容,常常需要这么玩: public void

Java反射获取方法参数名

问题 在编写一个jws(游戏中心的WEB框架)增强工具的时候,需要得到方法的参数名,而jws本身是可以获取参数名的(不然controller里将请求参数与方法参数绑定的功能也无法实现了). 但使用了jws提供的获取参数名方法时,却出现返回的参数名不正确的问题(只会出现在idea里面): 所以说: 为什么可以获取方法参数? 为什么eclipse和生产环境里不会发生这种问题? 怎样可以正确获取方法的参数名? 问题排查 获取方法参数 众所周知,在java里面,直到java8才可以正式的通过反射获取方法

Java获取代码中方法参数名信息的方法_java

前言 大家都知道随着java8的使用,在相应的方法签名中增加了新的对象Parameter,用于表示特定的参数信息,通过它的getName可以获取相应的参数名.即像在代码中编写的,如命名为username,那么在前台进行传参时,即不需要再编写如@Parameter("username")类的注解,而直接就能进行按名映射. 如下的代码参考所示: public class T { private interface T2 { void method(String username, Stri

java方法参数什么时候可以省略数据类型声明

问题描述 java方法参数什么时候可以省略数据类型声明 有时候我看到方法参数是一个匿名对象,那么匿名对象属于什么数据类型,是String类型吗,为什么没有数据类型的声明呢 解决方案 你说的匿名对象,是因为匿名对象本身是有返回值的,而返回值的类型恰好是构造方法的参数类型 A a = new A(new B()): 解决方案二: 看方法的定义,里面包含参数类型. 不知道你说的匿名对象是什么,直接调用构造函数,你可以从构造函数类名知道类型,如果是匿名类,那么这个类型是编译器产生的,实现了参数需要的接口

C# 方法参数 ref 详述

其实这个问题很容易理解,首先在C#中传递方法参数缺省是"值拷贝"模式,也就是说对于值类型(ValueType)变量直接拷贝一份,而对于引用类型则拷贝一个指向同一对象的引用副本传递给方法,因此即使不使用ref关键字,我们也可以在方法内部改变该引用所指向对象的内部状态,但是某些时候我们需要在方法内部创建一个新的对象实例,并使得原有引用指向这个新的对象.那么问题就来了,由于现在存在两个引用,我们改变的只是传递到方法的引用副本,而该副本在超出方法作用域后既失去作用,而原有的引用依然指向原有对象

全面解析$.Ajax()方法参数(推荐)_AJAX相关

先给大家介绍下Ajax概念 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新

《圣殿祭司的ASP.NET4.0专家技术手册》----2-5 命名参数与可选变量的运用

2-5 命名参数与可选变量的运用 圣殿祭司的ASP.NET4.0专家技术手册首先介绍传统C#方法定义参数与自变量赋值,进一步对比新的命名参数与选择性自变量的运用. 传统C#方法的参数与变量.若C#的方法有声明参数(Parameter),则在调用方法时,必须指定自变量(Argument),且自变量还必须按照顺序,且不能省略任何的自变量. 程序:Parameters.aspx 参数与自变量的区别 程序说明 参数与自变量的区别在于,方法本身定义的叫参数,从外部调用方法必须赋值相关的"值",这

Java方法参数是引用调用还是值调用?_java

方法调用(call by) 是一个标准的计算机科学术语.方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) .江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用.这其实很不恰当,这种 这些说法很容易让我们联想到Java的对象参数传递是引用调用,实际上,Java的对象参数传递仍然是值调用 . 我们首先用一段代码来证实一下为什么Java的对象参数传递是值调用. public class

全面解析$.Ajax()方法参数(推荐)

先给大家介绍下Ajax概念 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新