CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

如何判断一个变量是否为只读

楼主ljh()2006-05-02 10:47:50 在 .NET技术 / VB.NET 提问

某一个变量,类型不确定,在运行时,有可能是只读,也有可能可读写,我需要调用一个函数,将这个变量作为参数传过去,但是这个函数的参数声明却是byref,如果这个变量是只读,则会产生运行时错误,请问有什么办法可以避免这个问题。 问题点数:100、回复次数:8Top

1 楼ice_frank(回归......)回复于 2006-05-02 11:18:46 得分 0

关注Top

2 楼yinweihong()回复于 2006-05-02 11:25:18 得分 0

JCooke_MS   (Expert):    
  Q:   Is   it   possible   in   vb.net   to   pass   a   variable   by   reference   to   a   function   and   have   variable   in   a   readonly   state   so   it   can’t   be   modified   by   the   receiving   function?  
  A:   If   the   function   takes   a   ByRef   arguement,   the   function   can   change   it   as   much   as   it   wants.   I   suppose   that   you   could   make   a   copy   of   your   variable,   and   only   pass   the   copy.   Then   it   wouldn't   matter   if   the   function   changed   it.  
   
  Top

3 楼ljh()回复于 2006-05-02 11:30:45 得分 0

问题在于我还要判断这个变量如果是可写的话,这个函数还需要改变这个变量的值,如果仅仅拷贝这个变量,那么这个变量我就不能真正修改他的值了,这就是为什么函数里面的参数声明为byref的原因。也就是说,我需要判断这个变量是否可写,如果可写,修改它的值,如果只读则不修改,但是要确保不会产生运行时错误。Top

4 楼yurow(路漫漫其修远兮,吾将上下而爬楼梯!)回复于 2006-05-02 12:39:19 得分 0

如果不需要判断只要避免错误的话,建议每次使用该变量时候使用该变量的拷贝Top

5 楼yurow(路漫漫其修远兮,吾将上下而爬楼梯!)回复于 2006-05-02 12:42:05 得分 0

实在不行可以用  
  try  
  {  
            a   =   "asdasd"   //给a赋值,如果可以修改那么成功,如果为只读,进入错误处理  
  }  
  catch  
  {  
            //错误处理,可以在这里拷贝一个使用...等  
  }  
   
   
  建议不采用以上方法,出错时效率比较低Top

6 楼yinweihong()回复于 2006-05-02 13:35:33 得分 0

放在一起是做不来Top

7 楼alan001(星岛孤裔林郎君)回复于 2006-05-03 07:54:29 得分 0

学习Top

8 楼YidingHe(机枪兵)回复于 2006-05-03 13:11:58 得分 0

方法中添加一个Boolean类型参数名叫IsReadOnly即可。Top

相关问题

关键词

得分解答快速导航

  • 帖主:ljh

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo