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

为什么C#中不存在吊装?

发布时间:2020-12-15 20:47:43 所属栏目:百科 来源:网络整理
导读:我每天都使用 Javascript和C#,有时我不得不考虑使用Javascript时提升.但是,C#似乎没有实现提升(我知道),我无法弄清楚为什么.它更像是一种设计选择还是更类似于适用于所有静态类型语言的安全性或语言约束? 为了记录,我不是说我希望它存在于C#中.我只是想明白
我每天都使用 Javascript和C#,有时我不得不考虑使用Javascript时提升.但是,C#似乎没有实现提升(我知道),我无法弄清楚为什么.它更像是一种设计选择还是更类似于适用于所有静态类型语言的安全性或语言约束?

为了记录,我不是说我希望它存在于C#中.我只是想明白为什么不这样做.

编辑:当我在LINQ查询后声明变量时,我注意到了这个问题,但LINQ查询被推迟到变量声明之后.

var results = From c In db.LoanPricingNoFee Where c.LoanTerm == LoanTerm
                   && c.LoanAdvance <= UpperLimit Select c
                   Order By c.LoanInstalment Ascending;

    Int LoanTerm = 12;

引发错误,而:

int LoanTerm = 12;

    var results = From c In db.LoanPricingNoFee Where c.LoanTerm == LoanTerm
                   && c.LoanAdvance <= UpperLimit Select c
                   Order By c.LoanInstalment Ascending;

才不是.

解决方法

“它更像是一种设计选择还是更类似于适用于所有静态类型语言的安全性或语言约束?”

这不是静态类型的约束.编译器将所有变量声明移动到作用域的顶部(在Javascript中这是函数的顶部,在C#中是当前块的顶部)并且如果使用不同类型声明名称时出错将是微不足道的.

因此,C#中不存在提升的原因纯粹是一种设计决策.为什么它的设计方式我不能说我不在团队中.但这可能是由于解析的简易性(对于人类程序员和编译器)如果变量总是在使用前声明.

(编辑:李大同)

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

    推荐文章
      热点阅读