问题标签 [language-features]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 有用的新 .net(3.0,4.0) 技术特性
以前是 .net 2.0,这是 .net 开发的重大变化。许多开发人员主要致力于此。目前,微软已经推出了 .net 3.0 及其下一个版本 .net 4.0。因此,下一个版本将是 .net 开发的重大变化。
我已经列出了它的一些功能......
工作流基础 WPF WCF Windows cardspace 敏捷方法实现。Silverlight 功能增强。
在新一代框架中,您喜欢哪些功能以及吸引您的原因。
c# - 读取对象属性时忽略 NullReferenceException
有没有办法指示 C# 忽略NullReferenceException
一组语句(或任何特定的例外)。这在尝试从可能包含许多空对象的反序列化对象中读取属性时很有用。有一个辅助方法来检查 null 可能是一种方法,但我在语句块级别寻找接近“On Error Resume Next”(来自 VB)的东西。
编辑:Try-Catch 将跳过有关异常的后续语句
例如:我正在将 XML 消息反序列化为对象,然后尝试访问类似的属性
现在 prop2 可能是一个空对象(因为它在 XML 消息中不存在 - XSD 中的一个可选元素)。现在我需要在访问叶元素之前检查层次结构中每个元素的 null 。即,在访问“ID”之前,我必须检查 instance[0]、prop1、prop2 是否不为空。
有没有更好的方法可以避免对层次结构中的每个元素进行空检查?
language-features - 你希望哪些功能是通用语言?
你希望哪些功能是通用语言?更准确地说,我的意思是通常根本不存在但很高兴看到的功能,而不是“我希望动态类型很流行”。
java - Java 私有字段可见性
所以前几天我在做一个类并使用 Eclipse 的方法创建 equals 方法时,我意识到它生成了以下工作代码:
t.privateInt..???? 应该是私人的!所以我想除了私有、受保护、包保护和公共之外,还有一个字段可见性。
那么这里发生了什么?这个怎么称呼?有人会在哪里使用这个?这不会破坏封装吗?如果该类没有 mutator 而我更改了它怎么办?C++ 也会发生这种情况吗?这是一个面向对象的习语吗?如果不是,那为什么 Java 这样做呢?
一般来说,我在哪里可以找到这方面的信息?
谢谢你。
c# - 访问程序集范围之外的内部属性
我有内部属性的类:
但是我希望能够在程序集之外访问此属性,因此我创建了仅返回此属性的方法:
但是当我从这个程序集之外的类中调用这个方法时,我得到了一个异常
(System.TypeLoadException: Method 'get_EnrolmentState' on type 'EnrolmentAopProxy' from assembly '44fe776f-458e-4c5d-aa35-08c55501dd43, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is overriding a method that is not visible from that assembly.)
所以可以以任何方式访问程序集之外的内部成员,或者我应该考虑一种不同的方法。
顺便提一下,这个类被用作 O/R 映射器实体 (NPersist),它被 O/R 映射器覆盖以注入持久性代码。
python-3.x - Python 3.0 - dict 方法返回视图 - 为什么?
dict 方法 dict.keys()、dict.items() 和 dict.values() 返回“视图”而不是列表。 http://docs.python.org/dev/3.0/whatsnew//3.0.html
首先,视图与迭代器有何不同?其次,这种变化有什么好处?仅仅是出于性能原因吗?
这对我来说似乎并不直观,即,我要一份东西清单(把你所有的钥匙给我),然后我又得到了别的东西。这会让人们感到困惑吗?
.net - 微软是否应该仅仅因为国际化太难而避免在 .Net 中实现某项功能?
我在 Microsoft Connect 上提出了有关日期格式的请求(“ DateTime Formatting should calculate the correct suffix for the day ”)。基本上我想有一个格式化字符串代码,用于将后缀添加到日期编号。所以“1 Jan”将被格式化为“1st Jan”和“2 Jan”被格式化为“2nd Jan”等等。
对于英语案例来说,这很容易做到,但微软拒绝了这个想法,理由是它太难以国际化。
我只是想知道人们是否同意微软让仅仅为英语市场写作的英语程序员的生活变得更加困难是合理的,只是因为他们不能迎合非英语市场?
编辑:好的,我接受这样的论点,即有框架可以做他们想做的事。我更多是出于意识形态的要求。还要记住,对于非英语文化,有一个简单的后备方案,那就是什么都不添加,这不会让人们的生活比现在更糟。
编辑 2:对我来说,这是一个多小时的工作。我需要支持看起来像这样的代码:
我无法控制资源文件的内容,资源字符串通常类似于“日期不应早于 {0:D}”。为此,我需要实现我自己的 IFormatProvider 类,该类必须支持 Microsoft 格式化程序接受的所有不同格式化字符串。微软似乎没有提供一种简单的方法来通过继承来扩展他们的格式化程序。
language-agnostic - 是否应该从编程语言中删除(非接口类型的)继承?
这是一个颇具争议的话题,在你说“不”之前,真的、真的需要吗?
我已经编程了大约 10 年,老实说,我无法回想起继承解决无法以其他方式解决的问题的时间。另一方面,当我使用继承时,我可以回忆起很多次,因为我觉得我必须这样做,或者因为我认为我很聪明并最终为此付出了代价。
从实现的角度来看,我真的看不出任何不能使用聚合或其他技术来代替继承的情况。
我唯一需要注意的是,我们仍然允许接口继承。
(更新)
让我们举例说明为什么需要它,而不是说“有时它只是需要”。这真的一点帮助都没有。你的证据在哪里?
(更新 2 代码示例)
这是经典的形状示例,更强大,更明确的 IMO,没有继承。在现实世界中,几乎从来没有真正“是”其他东西的情况。几乎总是“在条款中实施”更准确。
python - 是否有相当于`perl -pi -e`的Python?
我知道python -c '<code>'
,但我想知道是否有更优雅的 python 等效于perl -pi -e '<code>'
. perl -pi -e s/foo/bar/g *
我仍然将它用于在整个目录(甚至find . | xargs perl -pi -e s/foo/bar/g
子目录)中查找和替换之类的事情。
实际上,我觉得 Perl Perl(自由形式的 Tim Toady-ness)是让perl -pi -e
工作如此出色的原因,而使用 Python,您必须按照导入 re 模块、创建 re 实例然后捕获标准输入,但也许有一个 Python 快捷方式可以完成所有这些工作,我错过了它(非常想念它)......
javascript - JavaScript hashmap 等价物
正如此答案的更新 3 中所述,此表示法:
实际上并没有散列对象X
;它实际上只是转换X
为一个字符串(.toString()
如果它是一个对象,或者是各种原始类型的其他一些内置转换),然后在“ hash
”中查找该字符串,而不对其进行散列。也不会检查对象相等性 - 如果两个不同的对象具有相同的字符串转换,它们只会相互覆盖。
鉴于此 - JavaScript 中是否有任何有效的 hashmap 实现?
(例如,Google 的第二个结果javascript hashmap
产生的实现对于任何操作都是 O(n)。各种其他结果忽略了具有等效字符串表示的不同对象相互覆盖的事实。