当前位置: 首页 > 编程语言 > C#

什么是“咕哝打字”?分享

时间:2023-04-10 19:12:13 C#

什么是“咕哝打字”?我看到过几次提到“含糊不清的打字”,例如StackOverflow的回答:Futureversionsof.NETwillsupportCThetuplein#?我在google上搜索了这个术语,除了一些希望C#最终支持它的人之外,我找不到太多的解释。什么是咕哝打字?我不知道C#设计团队中是否有人想出了这个术语,或者它是否在行业的其他地方使用过。当我们处理隐式类型的局部变量(即“varx=whatever;”)时,我们开始在C#3.0中使用它。一个相当常见的情况是希望编译器推断某些类型,但要明确另一部分。例如,考虑以下内容:varlist=newList(){10,20,30};这里没有给出“列表”的类型,而是给出了泛型列表的类型参数。人们想象这是从初始化程序中推断出来的:varlist=newList(){10,20,30};在哪里???意思是“这是一个类型参数;编译器,从上下文中找出它必须具有的内容”。我们称此为“哔”打字,因为有人会将代码解读为“varlistequalsnewlistofhrmhmrhrminitializedwith10,20,30”。我们从未实现过mumble类型,这有点不幸,因为这意味着很难列出匿名类型。您可以为此使用“逐个演示”技术。我喜欢这个链接,解释在页面末尾附近。基本上,我的理解是“模糊输入”的概念是无需指定整个类型的类型推断。现在,C#4.0确实有匿名类型,但有一些限制,其中一些在上面和这里的链接中有解释。我认为C#中的主要问题仍然是当你需要命名一个类型时,但你只有一个匿名类型,没有语法可以让你指定你需要什么。例如,这不起作用:ListmyList=SomeFunctionThatReturnsThisList(someParameter);varafterTransformation=myList.Select(o=>new{x=ox,y=oy});您不能将var指定为泛型中的类型。这是一个有点愚蠢的例子,但我希望它能说明这样一个观点,即存在具有匿名类型的句法结构,这些语法结构看起来应该是可能的,但实际上并非如此。以上就是C#学习教程:什么是“dumbmtyping”?涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: