好吧,我希望我的处理器没有被烧毁,因为:
[TestMethod]
public void tenEqualten()
{
Int64 a = 10;
UInt32 b = 10;
Assert.AreEqual(a, b);
}
Run Code Online (Sandbox Code Playgroud)
工作得很好,但这个:
[TestMethod]
public void tenNotEqualten()
{
Int32 a = 10;
UInt64 b = 10;
Assert.AreEqual(a, b);
}
Run Code Online (Sandbox Code Playgroud)
悲惨地失败了.
你有相同的结果,还是仅仅是我?如果有,任何想法,为什么?如果这是.Net 4.5的已知问题而不是抱歉垃圾邮件,但我找不到那个bug.
任何人都可以精心制作的,为什么第二个抛出InvalidOperationException异常"可空对象必须有一个值",如果foo是什么都没有?我希望它与第一个片段一样工作,但显然我遗漏了一些东西:
小片1:
If foo IsNot Nothing AndAlso foo.HasValue Then
_foo = foo.Value.Days
Else
_foo = 365
End If
Run Code Online (Sandbox Code Playgroud)
如果foo为Nothing,则不抛出(如预期的那样)
摘录2:
_foo = CInt(IIf(foo IsNot Nothing AndAlso foo.HasValue, foo.Value.Days, 365))
Run Code Online (Sandbox Code Playgroud)
如果foo为Nothing,则抛出InvalidOperationException - 为什么?
当我注意到以下内容时,我正在测试其他东西的圆形参考电阻:
public class Foo
{
private Bar myBar = new Bar();
}
public class Bar
{
private Foo myFoo = new Foo();
}
[Fact]
public void CircularReferenceTest()
{
var foo = new Foo();
var bar = new Bar();
}
Run Code Online (Sandbox Code Playgroud)
导致XUnit运行程序停止和控制台日志:
活动的测试运行已中止。原因:进程由于StackOverflowException而终止。
我在MStest上测试了它,并得到了相同的结果。有没有解决的办法?是一个错误,还是打算以这种方式停止执行?
有没有办法在不使用模板的情况下从该类创建类的实例?我需要做一些想法
static classobj* classobj::create (){return new this;}
现在我使用类模板并传递给可创建类的模板类型,如:
template<class T>
class basic_class {
public:
static T *create(int param) { return new T(param); }
}
Run Code Online (Sandbox Code Playgroud)
和
class A : public basic_class<A> {}
Run Code Online (Sandbox Code Playgroud)