A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯华亮 中级黑马   /  2012-8-12 19:04  /  1515 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在c#中进行参数传递时,比如形参是字符时,如何确定传入的字符一定存在?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

倒序浏览
取值,之后进行测试  if(a == null) 或者 a.equal(null)

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
通过设断点调试,或者输出可查看是否有值。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我是想问 如何确定传入的字符存在?换言之就是如何确定你传入的’字符‘就是字符?不是验证。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
在C#里面  引用类型 的参数 和对象  内部保存的都只是引用. → 当前实例存放在 托管堆上的地址
当你的一个方法  ShowName(string name)  调用 并传递一个   参数进去的时候. 其实本质上 ShowName 方法获取到的是当前参数的引用.
引用有没有数据  这个方法是不管的.
当时此方法会通过参数的引用   得到当前参数的类型指针 → 它根据你传入的参数 是否为 string类型 或者是string 类型的子类.如果 上述两种情况都成立的话.
那么在编译器的级别 它会让你编译通过. 但是到运行的时候,如果 你之前传递的引用 确实没有值的话 那么就被报一个非常经典的错误 "未将参数对象引用到参数的实例"  .
补充一点: 当你方法的参数 为string的时候,那么你传递的参数 就必须为string类型. 原因是 string 类 在.NET 中被申明成了一个密封类.密封类不能被继承.
在C#中 方法的参数是协变的. 但是 string 是一个密封类 它不具备 参数协变的前提.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马