- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Assert.IsNotNull(·)
Assert.AreNotEqual(null,·)
之间是否存在功能差异?
我更喜欢第一个,因为它更具可读性。一位同事使用了第二种,我想知道是否也存在功能差异。我知道将对象与 null 进行比较有时会很奇怪(.Equals
和 ==
之间的区别)。
最佳答案
简短的回答是不。
长答案涉及查看实际的源代码。我使用反编译器检索了它,所以其中一些看起来有点奇怪。评论是我加的。
// The IsNotNull overload that takes only "value" calls this one internally
public static void IsNotNull(object value, string message, params object[] parameters)
{
if (value != null)
return;
Assert.HandleFail("Assert.IsNotNull", message, parameters);
}
// The AreNotEqual that takes only "notExpected" and "actual" calls this one internally
public static void AreNotEqual<T>(T notExpected, T actual, string message, params object[] parameters)
{
if (!object.Equals((object) notExpected, (object) actual))
return;
Assert.HandleFail("Assert.AreNotEqual", (string) FrameworkMessages.AreNotEqualFailMsg(message == null ? (object) string.Empty : (object) Assert.ReplaceNulls((object) message), (object) Assert.ReplaceNulls((object) notExpected), (object) Assert.ReplaceNulls((object) actual)), parameters);
}
==
和 Equals
之间确实存在差异,但与 null 进行比较时应该没有差异。如您所见,AreNotEqual
将输入值转换为 object
并在 object
上使用标准静态 Equals
实现类,具体实现如下:
public static bool Equals(Object objA, Object objB)
{
if (objA==objB) {
return true;
}
if (objA==null || objB==null) {
return false;
}
return objA.Equals(objB);
}
在我看来,IsNotNull
比AreNotEqual
更清晰,断言失败时if给出的错误信息可能更容易一目了然。
关于c# - Assert.IsNotNull(·) Assert.AreNotEqual(null,·) 之间是否存在功能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18250740/
我见过几个在业务逻辑中使用以下代码的示例 sitecore 应用程序: Database database = Factory.GetDatabase(itemUri.DatabaseName);
我有一个简单的字段(实际上是一个属性): private final SimpleObjectProperty colored; ObjectWithColor类有一个属性 SimpleObj
为什么 Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotNull()声明为: public static void IsNotNull
我觉得问这个问题很傻,但我已经在两个独立的公司代码库中看到过这段代码,我开始认为我不知道有一些古老的 Java 知识。 所以,我们得到了这样的代码: /* Lot of corporate stuff
我喜欢可读性。 所以,我在几分钟前想出了一个扩展方法,用于 (x =! null) 类型语法,称为 IsNotNull。反过来,我还创建了一个 IsNull 扩展方法,因此 if(x == null)
我正在使用Doctrine\Common\Collections\Criteria::expr()(不是查询构建器表达式)。 这个类中似乎没有实现 isNotNull() 和 notLike() 运算
本文整理了Java中org.assertj.android.api.graphics.YuvImageAssert.isNotNull()方法的一些代码示例,展示了YuvImageAssert.isN
我有一个 iBatis 查询,例如 但是像 lowerLimit、upperLimit、maxLowerLimit、maxUpperLimit 和 state 这样的字段可能为 null,
在 Android 上使用 ORMLite 4.48,考虑以下用户表... @DatabaseTable(tableName = "users") public class User { @D
我有一个项目,计划将 querydsl 与 hibernate 搜索结合使用。然而,我有一个阻碍,我不知道如何实现。我在下面显示的两个类之间有一个 oneToMany 关系(我省略了所有不相关的字段)
Assert.IsNotNull(·) Assert.AreNotEqual(null,·) 之间是否存在功能差异? 我更喜欢第一个,因为它更具可读性。一位同事使用了第二种,我想知道是否也存在功能差异
NUnit.Framework.Assert 命名空间中有这两个方法。 我只是找不到它们之间的区别。我也很好奇什么时候使用哪个。 最佳答案 Two forms are provided for the
df.na().drop() 和 df.filter(df.col("onlyColumnInOneColumnDataFrame").isNotNull() && !df. 之间的语义有什么区别吗?
我是一名优秀的程序员,十分优秀!