where T : struct
Run Code Online (Sandbox Code Playgroud)
我们C#开发人员都知道C#的基础知识.我的意思是声明,条件,循环,运算符等.
我们中的一些人甚至掌握了Generics,匿名类型,lambdas,LINQ等......
但是C#粉丝,瘾君子,专家几乎都不知道C#最隐藏的功能或技巧是什么?
yield由迈克尔·葡萄汁var由迈克尔·葡萄汁using()kokos的声明readonly由kokosas由迈克·斯通as/ is由埃德Swangrenas/ is(改进)由Rocketpantsdefault由deathofratsglobal::通过pzycomanusing()由块AlexCusevolatile作者:JakubŠturcextern alias作者:JakubŠturcPython编程语言有哪些鲜为人知但有用的功能?
您认为每个程序员应该知道哪些JavaScript的"隐藏功能"?
在看到以下问题的答案的优秀质量后,我认为是时候向它询问JavaScript了.
虽然JavaScript现在可以说是最重要的客户端语言(只是问谷歌)但令人惊讶的是,大多数网络开发人员都很少理解它的实力.
为什么可以用这样的JavaScript调用函数,用node.js测试:
~$ node
> function hi() { console.log("Hello, World!"); };
undefined
> hi
[Function: hi]
> hi()
Hello, World!
undefined
> hi)( // WTF?
Hello, World!
undefined
>
Run Code Online (Sandbox Code Playgroud)
为什么最后一次通话hi)(有效?它是node.js中的bug,V8引擎中的bug,官方未定义的行为,还是所有解释器的实际有效JavaScript?
我知道这听起来像是一个让人尴尬的问题,但让我解释一下我来自哪里.
大学毕业后,我在PHP商店找到了一份工作.我在那里工作了一年半,并且认为我已经学到了所有有关编程的知识.
然后我在一家规模庞大的公司找到了一份单人内部开发工作室,所有工作都在C#中.在我对这个职位的承诺中,我开始阅读大量的博客和书籍,并很快意识到我认为我知道一切都是错的.我学习了单元测试,依赖注入和装饰模式,松散耦合的设计原则,继承辩论的组合等等 - 我仍然非常吸收它.毋庸置疑,我的编程风格在去年完全改变了.
现在我发现自己正在为一个朋友的初创公司做一些编码的PHP项目,我觉得完全受限制而不是用C#编程.让我感到困扰的是,必须通过追加'$ this->'来引用类范围内的所有变量.令我很生气的是,我尝试过的IDE中没有一个具有非常好的智能感知,而且我的SimpleTest单元测试方法必须从"测试"一词开始.令我疯狂的是,动态类型使我无法隐式指定方法所期望的参数类型,并且必须编写switch语句来执行方法重载.我不能忍受你不能拥有嵌套的命名空间,并且必须使用::运算符来调用基类的构造函数.
现在我无意启动PHP与C#的争论,而我的意思是说我确定有些PHP功能我不知道或者知道但是没有正确使用.我被置于我的C#宇宙中,无法看到玻璃碗外面.
所以我问,你最喜欢的PHP功能是什么?你可以做些什么,你不能或在.Net语言中更难?
继续"隐藏的......的特征"模因,让我们分享Ruby编程语言鲜为人知但有用的功能.
尝试用核心Ruby限制这个讨论,没有任何Ruby on Rails的东西.
也可以看看:
(请注意,每个答案只有一个隐藏的功能.)
谢谢
长版......
一位同事在看到我while (1)在Perl脚本中使用for (;;)更快后断言了.我认为他们应该是一样的,希望翻译能够优化任何差异.我设置了一个脚本,它将运行1,000,000,000次循环迭代和相同数量的while循环并记录它们之间的时间.我找不到明显的区别.我的同事说,一位教授告诉他,这while (1)是在进行比较1 == 1而事实for (;;)并非如此.我们用100倍的C++迭代次数重复相同的测试,差异可以忽略不计.然而,它是一个图形示例,说明编译代码与脚本语言相比可以更快.
精简版...
没有任何理由,更喜欢一个while (1)比一个for (;;),如果你需要一个无限循环打出来的?
注意:如果问题不清楚.这在几个朋友之间纯粹是一次有趣的学术讨论.我知道这不是一个超级重要的概念,所有程序员都应该为之痛苦.感谢所有伟大的答案我(我相信其他人)从这次讨论中学到了一些东西.
更新:前面提到的同事在下面做出回应.
这里引用以防它被埋没.
它来自AMD汇编程序员.他说C程序员(人们)没有意识到他们的代码效率低下.他今天说,gcc编译器非常好,让像他这样的人破产.他举例称,并告诉我关于
while 1VSfor(;;).我现在出于习惯而使用它,但是gcc和特别是解释器在这些日子里都会做同样的操作(处理器跳转),因为它们已经过优化.
我知道所有C编译器实现背后都有一个标准,所以应该没有隐藏的功能.尽管如此,我确信所有C开发人员都有他们一直使用的隐藏/秘密技巧.
以下是针对各种语言讨论的大量隐藏功能.现在我好奇XAML和WPF的一些隐藏功能?
我发现的是ListView的标题点击事件
<ListView x:Name='lv'
Height="150"
GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">
Run Code Online (Sandbox Code Playgroud)
未列出GridViewColumnHeader.Click属性.
到目前为止的一些相关功能:
也可以看看:
javascript ×2
c ×1
c# ×1
c++ ×1
java ×1
node.js ×1
optimization ×1
performance ×1
perl ×1
php ×1
python ×1
ruby ×1
syntax ×1
wpf ×1
xaml ×1