| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1397 人关注过本帖
标题:方法里临时变量设置访问权限是错误的?
只看楼主 加入收藏
parklee
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-6-8
收藏
 问题点数:0 回复次数:18 
方法里临时变量设置访问权限是错误的?

我的这个方法里
public string GetRS(string text2)
{
string picbody2=null;
private OleDbConnection ConBcc;//如果我设置该变量为private权限 则报错为“类、结构或接口方法必须有返回类型”类似的错误
private OleDbDataReader DtrBcc;

ConBcc=new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="+HttpContext.Current.Server.MapPath(NInfo.ConnectionString));
OleDbCommand command2=new OleDbCommand(text2,ConBcc);
try
{
ConBcc.Open();
DtrBcc=command2.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception exception1)
{
DtrBcc.Close();
ConBcc.Close();
throw new Exception(exception2.ToString());
}
while(DtrBcc.Read())
{
picbody2=picbody2+"<TR><TD><a href="+DtrBcc["url"]+" target=_blank><span class=style1> ·"+DtrBcc["name"]+"</a></TD></TR>";
}
DtrBcc.Close();
ConBcc.Close();
return picbody2;
}
难道我不能给方法里的临时变量设置权限?

搜索更多相关主题的帖子: 变量 权限 访问 
2006-08-25 12:20
parklee
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-6-8
收藏
得分:0 

C#里不是说 如果不给变量设置权限 默认为是private 但建议给变量显示申明权限的吗??
为什么我这样写 编译器要提示我错误


2006-08-25 12:22
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
干脆不要private了.呵~~~!

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-25 13:28
parklee
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-6-8
收藏
得分:0 
我就是问为什么不能用private啊

2006-08-25 13:41
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
public string GetRS(string text2)
這是個自定義方法.一個方法裏面的變量是不用修飾的.

[此贴子已经被作者于2006-8-25 13:54:21编辑过]


一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-25 13:52
parklee
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-6-8
收藏
得分:0 
哦 那我再问一下 当把
OleDbConnection ConBcc;
OleDbDataReader DtrBcc;
这两个申明放到方法类的时候 编译代码 提示我使用了未赋值的局部变量DtrBcc.Close();其中DtrBcc有下划线。但放到方法外 也就是类里定义这两个变量并申明均为private类型时就可以编译通过得到想要的结果。是为什么呢

2006-08-25 14:15
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
放在方法外,當然要加上访问级别了,(默认为private)

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-25 14:24
parklee
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-6-8
收藏
得分:0 

我不是问这个 我是问把
OleDbConnection ConBcc;
OleDbDataReader DtrBcc;
放在方法内为什么会提示我使用了未赋值的局部变量DtrBcc.Close();
而放在方法外就编译通过。


2006-08-25 14:31
parklee
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2006-6-8
收藏
得分:0 

如果在方法内 在申明OleDbDataReader DtrBcc;的时候改成OleDbDataReader DtrBcc=null;就可以得到结果了 奇怪了
照代码的执行顺序 即使不叫OleDbDataReader DtrBcc=null;执行完try里的语句以后 DtrBcc里就应该有值了啊 就算得不到值也应该是catch里的语句报错啊


2006-08-25 14:36
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
[CODE]

OleDbConnection ConBcc = null;
OleDbDataReader DtrBcc = null;
ConBcc=new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="+HttpContext.Current.Server.MapPath(NInfo.ConnectionString));
OleDbCommand command2=new OleDbCommand(text2,ConBcc);
try
{
ConBcc.Open();
DtrBcc=command2.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception exception1)
{
throw new Exception(exception2.ToString());
}
finally
{
DtrBcc.Close();
ConBcc.Close();
}[/CODE]
我觉得这样写比较好.
你上面的代码如果不执行try里面的[CODE]DtrBcc=command2.ExecuteReader(CommandBehavior.CloseConnection);[/CODE]
那么DtrBcc就肯定没有赋值啦.
而定义在方法外面的时候,默认为null了吧.


一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-25 14:40
快速回复:方法里临时变量设置访问权限是错误的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083683 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved