加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

分配变量C#时的异常处理

发布时间:2020-12-15 20:53:21 所属栏目:百科 来源:网络整理
导读:在处理项目时,我意识到我真的不知道C#(我在谷歌上也找不到任何关于它的东西).如果为变量赋值(已使用默认值初始化),并且该值由另一个方法创建,则在另一个方法中获得异常会发生什么.为了澄清,这里有一个例子: eType = defaultvalue;...eType = (EReaderType)E
在处理项目时,我意识到我真的不知道C#(我在谷歌上也找不到任何关于它的东西).如果为变量赋值(已使用默认值初始化),并且该值由另一个方法创建,则在另一个方法中获得异常会发生什么.为了澄清,这里有一个例子:

eType = defaultvalue;
...
eType = (EReaderType)Enum.Parse(typeof(EReaderType),tXmlNode.InnerText,true);

如果Enum.Parse无法解析值(Xml中的字符串,这里不重要……)并抛出异常会发生什么? eType会保留其默认值,还是会被其他东西重新分配(null或某些未定义的blabla)?到目前为止,我的测试显示它将保留旧值.但是,我不确定这是否会一直有效,或者是不是偶然的.简单地说,我不知道C#如何处理这些东西.

编辑:好的,非常感谢所有答案:)

解决方法

推理它的正确方法是:

>子表达式的副作用从左到右执行.
>运算符的副作用按优先顺序执行.

假设你有:

M().x = N(P()).Q(); // x is a variable

事情发生的顺序是:

> M()被执行
>确定x的位置
> P()被执行
> N()被执行
> Q()被执行
> x的分配发生了

如果其中一个引发异常,则永远不会执行异常后发生的所有事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读