Jef*_*ood 86
哦......你想要"不是"关键字?
VB添加不是关键字
(Newswire 8-19-2004)
微软已宣布Visual Basic将在该语言中添加"Is not"关键字.根据VB.NET团队的一位消息来源"使用VB,我们希望语言以您的思维方式运行.广泛的可用性研究向我们展示了添加不是语言的好处."
添加关键字将允许这样的语法
If ThisThing Ain't Nothing Then根据消息来源"我们正在努力跟上英语的进步,正如你所知,这种进步几乎和技术本身一样快." VB团队认为,最终不会成为英语中完全支持的关键词,并且他们认为如果他们在此版本中不包含关键词,他们可能会在下次更新机会之前远远落后于英语VB.然而,激烈辩论的是"不是"应该等同于什么.在它最流行的形式中,上面的代码行将转换为:
If ThisThing Is Nothing Then然而,每个人的二年级英语老师已经明确表示"不是没有"实际上意味着"是某事",因为这是一个双重否定.意味着正确的平等
If ThisThing IsNot Nothing Then微软并不急于匆忙做出这一决定,国家消息人士称,"看看,在VB.NET Beta 1和Beta 2之间,我们不得不改变'真'的定义.我们不想再重复这个问题了."
然而,语言纯粹主义者宣称整个方法都是错误的,并指出"不是"是对"不是"的收缩,并且说"如果这不是什么都没有"只是语法不好.他们说,更好的替代方案将包括恢复,不如"如果这不是什么都没有".但即便如此,语言学家Jacque Leblanc也可能不够,"我坚持认为双重否定的永久性是这个问题的根本原因,但到目前为止,没有人真的愿意讨论房间里明显的大象.真正的解决方案是允许'If ThisItem Is Something Then.'"
据报道,微软还在试验"AsIf","Maybe"和"Totally".此外,"Catch"可能会被"Doh!"取代,"Finally"将被"Whatever"取代.
来源:http://web.archive.org/web/20050308014055/http : //ea.3leaf.com/2004/08/vb_adds_aint_ke.html
Dav*_*jak 56
虽然没有内置语法来执行此操作,但我建议您查看支持的逻辑运算符列表,然后仔细研究De Morgan的定律.在这两个字段中有足够的知识将允许您在if-else if语法中编写任何逻辑语句.
编辑:要完全回答你的问题(尽管已经在其他答案中已经完成),你可以编写一个既不是这样的语句:
if (!A && !B) { DoStuff(); }
Run Code Online (Sandbox Code Playgroud)
Chr*_*isW 13
编码"如果既不是A也不是B":
if (!A && !B) { ... } //if (not A) and (not B)
Run Code Online (Sandbox Code Playgroud)
要么:
if (!(A || B)) { ... } //if not (A or B)
Run Code Online (Sandbox Code Playgroud)
Unc*_*ens 10
干得好:
class neither_t
{
bool lhv;
neither_t(bool lhv): lhv(lhv) {}
public:
bool nor(bool rhv) const
{
return !lhv && !rhv;
}
friend neither_t neither(bool lhv);
};
neither_t neither(bool lhv)
{
return neither_t(lhv);
}
#include <cstdio>
int main()
{
int x = 3;
if (neither(x == 1).nor(x == 2)) {
puts("OK");
}
}
Run Code Online (Sandbox Code Playgroud)