我这里有这个代码,它允许任何类型的参数:
public static void AreEqual(object expectedValue, object actualValue) {
if (expectedValue == actualValue) {
HttpContext.Current.Response.Write("Equal");
} else {
HttpContext.Current.Response.Write("Not Equal");
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用几个整数调用它,它表现不佳.
AreEqual(3, 3) // prints Not Equal
Run Code Online (Sandbox Code Playgroud)
Mar*_*ell 16
在最简单的层面:
public static void AreEqual(object expectedValue, object actualValue) {
if (object.Equals(expectedValue,actualValue)) {
HttpContext.Current.Response.Write("Equal");
} else {
HttpContext.Current.Response.Write("Not Equal");
}
}
Run Code Online (Sandbox Code Playgroud)
或者使用泛型(支持IEquatable<T>):
public static void AreEqual<T>(T expectedValue, T actualValue) {
if (EqualityComparer<T>.Default.Equals(expectedValue,actualValue)) {
HttpContext.Current.Response.Write("Equal");
} else {
HttpContext.Current.Response.Write("Not Equal");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4882 次 |
| 最近记录: |